如何为归档子目录中的文件编写批处理文件?

时间:2014-09-23 11:18:15

标签: windows batch-file

我想编写批处理脚本,它将添加到子目录中的档案文件中。实现的名称应该是子目录名称。

例如,我有以下结构:

file.bat
dir1
-- file1.txt
-- file2.csv
dir2
-- file3.txt
-- file4.csv

我想运行file.bat并获取两个文件:

dir1.zip
-- file1.txt
-- file2.csv
dir2.zip
-- file3.txt
-- file4.csv

我写了这样的话:

FOR /D %%i IN (.\*) DO "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i"

但我得到了

 dir1.zip
--dir1
--- file1.txt
--- file2.csv
--dir2.zip
--- file3.txt
--- file4.csv

这是错的。

如何使用7-zip获得正确的结果?

感谢。

1 个答案:

答案 0 :(得分:0)

测试一下:

FOR /D %%i IN (*) DO "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "%%~ni.zip" "%%i\*"

这将创建没有文件夹名称的ZIP文件。

@echo off
FOR /D %%i IN (*) DO (
   pushd "%%i"
      "C:\Program Files\7-Zip\7za920\7za.exe" a -tzip "..\%%~ni.zip" *
   popd
)
pause