3

几天来,我一直在挠头,试图让它发挥作用。我正在尝试编写一个批处理脚本来查找 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

基本上如果文件包含美元移动到美元文件夹,如果文件包含“ZAR”移动到“ZAR”文件夹。我正在使用 pdftextreplacer 搜索可以正常工作的 pdf 文件。

任何帮助将不胜感激。

4

1 回答 1

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
)
于 2013-10-22T14:13:55.277 回答