cmd批处理:如何将一个目录下的所有目录压缩到另一个目录?

cmd批处理:如何将一个目录下的所有目录压缩到另一个目录?,cmd,batch-processing,Cmd,Batch Processing,我想将一个目录下的所有目录和所有文件压缩到另一个目录。 例如,我想将d:\test中的所有dir压缩为E:\backup D:\test\testdir1 D:\test\testdir2 D:\test\testfile3 E:\backup\testdir1.zip E:\backup\testdir2.zip E:\backup\testfile3.zip 压缩dirs后,我可以在E:\backup中获得zip文件 D:\test\testdir1 D:\test\testdir2 D

我想将一个目录下的所有目录和所有文件压缩到另一个目录。 例如,我想将d:\test中的所有dir压缩为E:\backup

D:\test\testdir1
D:\test\testdir2
D:\test\testfile3
E:\backup\testdir1.zip
E:\backup\testdir2.zip
E:\backup\testfile3.zip
压缩dirs后,我可以在E:\backup中获得zip文件

D:\test\testdir1
D:\test\testdir2
D:\test\testfile3
E:\backup\testdir1.zip
E:\backup\testdir2.zip
E:\backup\testfile3.zip
我知道在cmd命令中,我可以通过“zip”命令进行压缩。 像这样

zip -r   e:\backup\testdir1.zip  d:\test\testdir1
但我不知道如何在D:\test下循环所有目录和文件。
那么谁能帮助我呢?

我还没有测试过它,但是如果使用批处理文件,它会像这样:

for /f %%f in ('dir /b D:\test') do zip %%f E:\backup\%%f.zip
否则


对于(d:\test\*)中的/d%%f,请执行zip e:\backup\%f.zip%%f
但是%%f是
d:\test\test1dir
,如何使%%f是
test1.dir
最后,我可以通过
cd将目标dir
复制到zip文件,以使dir路径不在zip文件中。谢谢