2012-02-16 77 views
37

我想壓縮包含文件的文件夾。所以爲了做到這一點,我需要遍歷整個文件列表並執行7za命令。 (7zip命令行版本)%%此時出乎意料

for /f %%A in ('"G:\Files Sample\zip\txt\*.t 
xt"') do 7za -tzip "%%A.zip" "%%A" 

不過windows說這個命令無效。

錯誤消息

%%A was unexpected at this time 

我如何解決這個問題?當您使用批處理程序(* .bat)的形式

嘗試刪除一個'%'

回答

59

%%A時,你沒有逃脫%,所以%a就足夠了。您只需要從批處理文件中使用%%a

此外,您希望選擇文件而不是執行「G:\ Files Sample \ zip \ txt \ *。txt」作爲命令,這是/f開關與單引號組合使用的功能。完整的命令是:for %A in ("G:\Files Sample\zip\txt\*.txt") do 7za -tzip "%A.zip" "%A"

+0

燁,幫助,也有要注意,你需要把DIR/B命令 – klijo 2012-02-16 13:37:49

+0

你救了我生活中的括號內的區域內的一個點:) – VenomVendor 2013-03-09 14:24:23

+0

另外一個應該注意的是,你不能使用像%文件似乎。似乎只允許一個字母的參數。 – fschmitt 2015-10-01 06:39:58

3

如果您在命令行做

0

在批處理文件中嘗試此操作。

FOR "G:\Files Sample\zip\txt\" %%G IN (*.txt) DO 7za -tzip "%%G.zip" "%%G" 

添加/R作爲選項來搜索所有子文件夾中的文件。

的CMD-方法很好地解釋了,你會發現在ss64