[英]Using FORFILES to pass files to program
我正在嘗試在Windows 7中編寫兩行.bat文件,以在根文件夾和子文件夾中遞歸搜索pdf並打印它們,但是像我的文件中那樣使用FORFILES
命令:
set fxread="C:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"
forfiles /s /m *.pdf /c "%fxread% /p @FILE"
給出以下錯誤:
ERROR: Invalid argument/option - 'Files'.
但是,如果我只是使用FORFILES
顯文件名, FORFILES
得到預期的pdf文件列表。 即這段代碼:
forfiles /s /m *.pdf /c "cmd /c echo @FILE"
生成pdf文件列表,每行一個,並用引號引起來。
有人知道為什么我不能將這些文件傳遞給PDF查看器進行打印嗎? 請注意,此命令確實會按預期打印pdf文件:
%fxread% /p "FILE_NAME.pdf"
當您將字符串用引號引起來以保留空格時,引號將成為字符串的一部分。 將其與forfiles所需的引號相結合,然后傳遞命令forfiles /s /m *.pdf /c ""C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\FoxitReader.exe" /p @FILE"
將第一個引號放在fxread之前,以避免在字符串中包含引號。 此外,需要轉義空格,括號和引號的十六進制等效項。
set "fxread=^0x22C:\Program^ Files^ ^(x86^)\Foxit^ Software\Foxit^ Reader\Foxit^ Reader.exe^0x22^ /p"
forfiles /s /m *.pdf /c "cmd /c %fxread% @path"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.