Windows 要压缩父文件夹中存在的4个不同文件夹中的所有内容(文件/文件夹)
我希望压缩Windows 要压缩父文件夹中存在的4个不同文件夹中的所有内容(文件/文件夹),windows,for-loop,batch-file,cmd,Windows,For Loop,Batch File,Cmd,我希望压缩4不同文件夹中的所有内容(文件夹/文件),并希望将生成的4不同.zip文件与其对应的父文件夹同名 例如,在位置D:\test\pk下,我在pk文件夹下有4个文件夹: knomBk-2.4-1 knomBk-2.3-1 knomBk-2.5-1 knomBk-2.6-1 在这四个文件夹中,我有一组相似的内容(文件/文件夹)。我想一个接一个地压缩这四个文件夹中的所有内容,并将生成的4.zip文件复制到D:驱动器上的某个位置 因此,我会得到如下结果: D:\outputzipfiles\k
4
不同文件夹中的所有内容(文件夹/文件),并希望将生成的4
不同.zip
文件与其对应的父文件夹同名
例如,在位置D:\test\pk
下,我在pk
文件夹下有4个文件夹:
knomBk-2.4-1
knomBk-2.3-1
knomBk-2.5-1
knomBk-2.6-1
在这四个文件夹中,我有一组相似的内容(文件/文件夹)。我想一个接一个地压缩这四个文件夹中的所有内容,并将生成的4
.zip
文件复制到D:
驱动器上的某个位置
因此,我会得到如下结果:
D:\outputzipfiles\knomBk-2.4-1.zip
D:\outputzipfiles\knomBk-2.3-1.zip
D:\outputzipfiles\knomBk-2.5-1.zip
D:\outputzipfiles\knomBk-2.6-1.zip
我怎么做
我在(目录)do{command..}中为%a尝试了,
循环命令,如下所示:
D:\test\pk> FOR %a in (`DIR \b *-1`) do "C:\\Program Files\\7-Zip\\7z.exe" a -tzip d:/outputzipfiles/ -o"%~na"
我知道上面的命令是错误的,因为它一定类似于-tzip d:\outputzipfiles\knomBk-*.zip,但我不知道如何做
我还使用forfiles
命令尝试了一些组合,但没有成功。这是我的初始测试设置(下次,您可能希望为我们提供类似的内容)
当我需要像你一样的东西时,我会一步一步地做。通过学习这项技术,您可以解决许多问题。事情是这样的:
检查dir\b*-1
是否按预期工作:
D:\temp\sotest>dir \b *-1
Volume in drive D is Mirror
Volume Serial Number is B693-F1F1
Directory of D:\
File Not Found
Directory of D:\temp\sotest
05.11.2019 21:47 <DIR> knomBk-2.3-1
05.11.2019 21:47 <DIR> knomBk-2.4-1
05.11.2019 21:47 <DIR> knomBk-2.5-1
05.11.2019 21:47 <DIR> knomBk-2.6-1
0 File(s) 0 bytes
4 Dir(s) 2.945.857.200.128 bytes free
回答:没有。对于('dir/b*-1')中的/F%a,正确的是,使用/F
作为参数和直撇号回显%a
检查我所需的参数(如%~na
)是否有效:
回答:没有。~n
部分将.3-1
部分解释为不需要的文件扩展名。只需使用“%a”
检查不带for循环的命令是否有效:
D:\temp\sotest>for %a in (`dir /b *-1`) do echo %a
D:\temp\sotest>echo `dir
`dir
D:\temp\sotest>echo /b
/b
D:\temp\sotest>"C:\Program Files\7-Zip\7z.exe" a -tzip "d:/temp/sotest/" -o"x"
回答:没有。文件名不正确,生成的zip文件包含所有目录,而不是一个目录。斜杠的方向不对。正确的命令是“C:\Program Files\7-Zip\7z.exe”a-tzip-o“d:\temp\sotest\”“x”knomBk-2.3-1/*
,其中-o
位于正确的位置,并且要添加目录名
最后,结合一切:
for /F %a in ('dir /b *-1' ) do "C:\Program Files\7-Zip\7z.exe" a -tzip -o"d:\temp\sotest\" "%a.zip" "%a/*"
“不成功”是什么意思?没有zip文件,错误消息,…?*
-1
将不匹配knomBk-2.4
。不是错误消息,但我无法获得所需的响应。我的意思是,当我在(DIR\b*-1
)中为%a运行D:\test\pk>时,执行“C:\\Program Files\\7-Zip\\7z.exe”a-tzip output.Zip-o“%~na”我在同一位置得到一个output.Zip文件夹,但我想在同一位置得到4个Zip文件,如{knomBk-2.4.-1.Zip、knomBk-2.3-1.Zip、knomBk-2.5-1.Zip和knomBk-2.6-1.Zip}。我知道我的命令不正确,请让我知道如何获取这些zip文件对不起,它实际上是knomBk-2.4-1我现在写问题时输入错误,我在问题中更正了它,
D:\temp\sotest>"C:\Program Files\7-Zip\7z.exe" a -tzip "d:/temp/sotest/" -o"x"
for /F %a in ('dir /b *-1' ) do "C:\Program Files\7-Zip\7z.exe" a -tzip -o"d:\temp\sotest\" "%a.zip" "%a/*"