我有很多文件夹,例如:
带有示例内容的 Folder1
:
File1.txt
File2.txt
File3.xml
File4.jpg
.
.
.
zip后的结果:Folder1.zip
Folder2
:
File12.txt
File22.txt
File32.xml
File42.jpg
.
.
zip后的结果:Folder2.zip
如何在每个文件夹中仅压缩所有文件(不是整个文件夹),结果文件名如“Foldername.zip”。我找到了这段代码for /d %%a in (*) do (ECHO zip -r -p "%%~na.zip" ".\%%a\*")
,但它会压缩整个文件夹,而不仅仅是文件。
答案 0 :(得分:0)
我通过以下步骤解决了问题:
这是一个有效的代码:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir /A:D /B') do (
xcopy /y "Path_to_empty_zip\Test.zip" ".\%%~na\"
rename "%%~na\Test.zip" "%%~na.zip"
)
for /f "delims=" %%a in ('dir /A:D /B') do (
cd "Path_to_working_folder\%%~na\"
zip -r "%%~na.zip" "*.txt"
zip -r "%%~na.zip" "*.jpg"
zip -r "%%~na.zip" "*.xml"
)
pause
我发现了一些没有解决方案的类似问题,因为将我的解决方案发布为"回答我的问题"。