我想编写批处理脚本,它将添加到子目录中的档案文件中。实现的名称应该是子目录名称。
例如,我有以下结构:
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获得正确的结果?
感谢。
答案 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