2014-10-30 42 views
0

我想寫一個2線蝙蝠在Windows 7文件在根文件夾和子文件夾的PDF文件進行遞歸搜索和打印但是他們FORFILES命令,如我的文件:使用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呼應的文件名,我得到預期的PDF文件的列表;即此代碼:

forfiles /s /m *.pdf /c "cmd /c echo @FILE" 

產生pdf文件的列表,每行一個,並用引號括起來。

任何人都知道爲什麼我無法將這些文件傳遞給PDF查看器進行打印?請注意,這個命令會打印PDF文件預期:

%fxread% /p "FILE_NAME.pdf" 

回答

0

當你用引號括字符串保存空間,引號成爲字符串的一部分。將它與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" 
+0

羅傑,大約報價 - 我已經看了您的文章和我和我有一個盲人分鐘,我可以 – user2727391 2014-10-30 04:20:51

+0

在第一行,改變了'set fxread =「''來設定」 fxread =' – SomethingDark 2014-10-30 04:22:11

+0

羅傑關於報價 - 我現在有一個盲目的時刻,不能發現我和你的命令之間的區別,但我已經嘗試過你的修復,現在只是得到'錯誤:系統找不到指定的文件.' - 再次與'FORFILES'的輸出有關的引用? – user2727391 2014-10-30 04:23:52