我一直在摸不着头几天试图让它发挥作用。我正在尝试编写批处理脚本来查找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文件。
非常感谢任何帮助。
答案 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
)