2012-06-21 110 views
4

因此,我試圖編寫一個腳本,使用7-zip將包含另一個.zip文件的.zip文件提取到當前目錄並將其刪除。我的.bat腳本有什麼問題?

一切工作正常,當我鍵入它進入命令提示符:

set 7ZIP="C:\Program Files\7-Zip\7zG.exe" 
for %X in (*.zip) do start "Extracting..." /WAIT %7ZIP% x "%X" && del "%X" 

然而,當我嘗試這樣做在一個.bat文件(注意%%),我得到一個奇怪的錯誤

set 7ZIP="C:\Program Files\7-Zip\7zG.exe" 
for %%X in (*.zip) do start "Extracting..." /WAIT %7ZIP% x "%%X" && del "%%X" 

Failed

任何想法?

+0

看起來像'/ WAIT ZIPX'在屏幕截圖中,但是在這裏輸入的內容是'/ WAIT%7ZIP%' - 你是在這裏重新輸入內容還是從實際的批處理文件中複製並粘貼? – sarnold

+0

不,我只需雙擊我的.bat文件即可。很奇怪,是吧? – Amil

+0

非常。至少你找出了可能的原因...... – sarnold

回答

4

好吧,我剛剛得知你顯然不能在蝙蝠腳本開始用數字(或啓動命令??)變量,因爲這個工程:

set ZIP7="C:\Program Files\7-Zip\7zG.exe" 
for %%X in (*.zip) do start "Extracting..." /WAIT %ZIP7% x "%%X" && del "%%X" 
+3

是的 - 批處理看到'%7ZIP%'中的'%7',並且假定您正在嘗試訪問第7個命令行參數。有意思的是,如果您啓用延遲擴展並使用它,它就會起作用!7ZIP!代替。但是永遠不要創建以數字開頭的環境變量,這仍然是一個好主意。 – dbenham