7zip批处理目录中没有文件夹的多个文件

时间:2015-05-29 01:50:49

标签: batch-file 7zip

我在一系列需要单独压缩的文件夹中有一系列文件。

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”,但所有这一切都是为每个文件夹保存所有目录中的所有文件。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

更改为存储要压缩的文件的文件夹

for /d %%X in (fol*) do ( 
    pushd "%%~fX" & (
        "c:\Program Files\7-Zip\7z.exe" a "%cd%\ZIPS\%%~nX.zip" *
        popd
    )
)