用于压缩文件夹中文件的批处理文件/Powershell脚本

用于压缩文件夹中文件的批处理文件/Powershell脚本,powershell,batch-file,cmd,zip,Powershell,Batch File,Cmd,Zip,我有很多文件夹,里面有文件,例如: Folder1带有示例内容: File1.txt File2.txt File3.xml File4.jpg . . . File12.txt File22.txt File32.xml File42.jpg . . zip后的结果:Folder1.zip Folder2带有示例内容: File1.txt File2.txt File3.xml File4.jpg . . . File12.txt File22.txt File32.xml File42

我有很多文件夹,里面有文件,例如:

Folder1
带有示例内容:

File1.txt
File2.txt
File3.xml
File4.jpg
.
.
.
File12.txt
File22.txt
File32.xml
File42.jpg
.
.
zip后的结果:
Folder1.zip

Folder2
带有示例内容:

File1.txt
File2.txt
File3.xml
File4.jpg
.
.
.
File12.txt
File22.txt
File32.xml
File42.jpg
.
.
zip后的结果:
Folder2.zip


如何仅压缩每个文件夹中的所有文件(而不是整个文件夹),结果文件名为“Foldername.zip”。我在(*)do(ECHO-zip-r-p“%%~na.zip”。\%%a\*”)中找到了/d%%a的代码
,但它可以压缩整个文件夹,而不仅仅是文件。

我通过以下步骤解决了问题:

  • 创建空的zip文件
  • 将此文件复制到“工作文件夹”中的所有文件夹
  • 用文件夹名重命名所有zip文件
  • 将.txt、.jpg、.xml文件添加到zip
  • 这是一个工作代码:

    @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
    
    我发现一些没有解决方案的类似问题,因为将我的解决方案发布为“回答我的问题”