我在一系列需要单独压缩的文件夹中有一系列文件。
C:\folder1\file1-1.txt
C:\folder1\file1-2.txt
C:\folder1\file1-3.txt
C:\folder2\file2-1.txt
C:\folder2\file2-2.txt
C:\folder2\file2-3.txt
C:\folder2\file2-4.txt
C:\folder3\file3-1.txt
C:\folder3\file3-2.txt
C:\folder3\file3-3.txt
C:\folder3\file3-4.txt
C:\folder3\file3-5.txt
我使用下面的代码压缩每个文件夹,没问题:
for /d %%X in (fol*) do "c:\Program Files\7-Zip\7z.exe" a "%cd%\ZIPS\%%X.zip" "%%X"
我在目录“ZIPS”中留下3个zip文件,每个文件夹的内容都在自己的ZIP中,如期望的那样。
C:\ZIPS\folder1.zip
C:\ZIPS\folder2.zip
C:\ZIPS\folder3.zip
然而,在每个文件中,我留下了文件夹和文件。
e.g. C:\ZIPS\folder1.zip\folder1\<files here>
我所追求的是保存在目录根目录中的文件:
e.g. C:\ZIPS\folder1.zip\<files here>
我尝试删除该行末尾的“%% X”,但所有这一切都是为每个文件夹保存所有目录中的所有文件。
任何帮助将不胜感激。
答案 0 :(得分:0)
更改为存储要压缩的文件的文件夹
for /d %%X in (fol*) do (
pushd "%%~fX" & (
"c:\Program Files\7-Zip\7z.exe" a "%cd%\ZIPS\%%~nX.zip" *
popd
)
)