2012-02-16 80 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