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

时间:2016-02-20 13:18:10

标签: powershell batch-file cmd zip

我有很多文件夹,例如:

带有示例内容的

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\*"),但它会压缩整个文件夹,而不仅仅是文件。

1 个答案:

答案 0 :(得分:0)

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

  1. 创建空zip文件
  2. 将此文件复制到"工作文件夹"
  3. 中的所有文件夹
  4. 使用文件夹名称重命名所有zip文件
  5. 将.txt,.jpg,.xml文件添加到zip。
  6. 这是一个有效的代码:

    @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
    

    我发现了一些没有解决方案的类似问题,因为将我的解决方案发布为"回答我的问题"。