用于将文件压缩到文件夹中的批处理文件/Powershell 脚本
Batch file / Powershell script to zip files in folders
我有很多文件夹,里面有文件例如:
Folder1
示例内容:
File1.txt
File2.txt
File3.xml
File4.jpg
.
.
.
压缩后的结果:Folder1.zip
Folder2
示例内容:
File12.txt
File22.txt
File32.xml
File42.jpg
.
.
压缩后的结果:Folder2.zip
如何仅压缩每个文件夹中的所有文件(而不是整个文件夹),结果文件名如 "Foldername.zip"。我找到了这段代码 for /d %%a in (*) do (ECHO zip -r -p "%%~na.zip" ".\%%a\*")
,但它压缩了整个文件夹,而不仅仅是文件。
我通过以下步骤解决了这个问题:
- 创建空 zip 文件
- 将此文件复制到 "working folder"
中的所有文件夹
- 用文件夹名称重命名所有 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
我发现了一些没有解决方案的类似问题,因为将我的解决方案发布为 "answer on my question"。
我有很多文件夹,里面有文件例如:
Folder1
示例内容:
File1.txt
File2.txt
File3.xml
File4.jpg
.
.
.
压缩后的结果:Folder1.zip
Folder2
示例内容:
File12.txt
File22.txt
File32.xml
File42.jpg
.
.
压缩后的结果:Folder2.zip
如何仅压缩每个文件夹中的所有文件(而不是整个文件夹),结果文件名如 "Foldername.zip"。我找到了这段代码 for /d %%a in (*) do (ECHO zip -r -p "%%~na.zip" ".\%%a\*")
,但它压缩了整个文件夹,而不仅仅是文件。
我通过以下步骤解决了这个问题:
- 创建空 zip 文件
- 将此文件复制到 "working folder" 中的所有文件夹
- 用文件夹名称重命名所有 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
我发现了一些没有解决方案的类似问题,因为将我的解决方案发布为 "answer on my question"。