批量搜索PDF文件中的文本

时间:2013-10-22 13:57:28

标签: batch-file

我一直在摸不着头几天试图让它发挥作用。我正在尝试编写批处理脚本来查找PDF文件中的文本并将所述文件移动到文件夹中。听起来很简单,但我没有得到一个for循环来解析变量。这就是我到目前为止所做的:

@echo off
SetLocal
setlocal enabledelayedexpansion
set dir=C:\Pdf Invoices
set inc=C:\Pdf Invoices\ESD\Includes
title Signing Invoices
echo Signing Invoices.....
echo.

:Movefiles
REM Check "IN" folder for invoices

if exist "%dir%\In\*.pdf" (goto MOVEFORPROCESSING) else (goto END)

:MOVEFORPROCESSING
for /f %%a in ('DIR /b "%dir%\In\*.pdf"') do (
    move "%dir%\In\%%a" "%dir%\ESD\Processing\" >nul
)

for /r "%dir%\ESD\Processing" %%F in (*.pdf) do (
    set type="%inc%\pdftextreplacer_cmd\pdftr.exe" -searchtext "USD" "%%F" | find /C "USD"
    If "%type%" == "0" (
        echo File is ZAR
)   else (
        echo File is USD
        )
)

:END

基本上如果文件包含USD移动到USD文件夹而IF文件包含“ZAR”则移动到“ZAR”文件夹。我正在使用pdftextreplacer来搜索工作正常的pdf文件。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

白色空间的可能问题

for /F "tokens=*" %%a in (.....

变量%type%

的可行延迟扩展问题

设置变量%type%的逻辑存在问题。您不能将变量设置为执行命令的返回值。重写

"%inc%\pdftextreplacer_cmd\pdftr.exe" -searchtext "USD" "%%F" | find "USD" >nul 
if errorlevel 1 (
    echo File is ZAR
) else (
    echo File is USD
)