簡體   English   中英

使用FORFILES將文件傳遞給程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM