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

Windows 如何编写批处理文件以归档子目录中的文件?,windows,batch-file,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:\P

我想写一个批处理脚本,它将被添加到子目录中的归档文件中。实现的名称应作为子目录名称

例如,我有以下结构:

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获得正确的结果

谢谢。

测试一下:

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

不幸的是,我得到了我最后一个问题的结构:它在这里工作得很好。你在控制台上看到了什么?7-Zip A 9.20版权c 1999-2010 Igor Pavlov 2010-11-18扫描创建归档文件dir2.Zip压缩dir2\file2.txt压缩dir2\file4.csv一切正常,但我看到了。例如,dir1.zip首先是文件夹dir1,然后是仅文件。我需要dir1.zip和其中的文件执行C:\Program Files\7-zip\7za920\7za.exe l dir1.zip并将屏幕输出粘贴到您的问题中,这样我就可以看到zip文件中的内容,然后描述您需要的内容。