Түм*_*гал 4 windows compression 7zip batch-file winrar
我正在尝试编写一个批处理脚本,它将使用winrar或7-zip自动压缩子目录:
例:
My Pictures
Pics1 (Pics1.zip)
File1.jpg
File2.jpg
File3.jpg
Pics2 (Pics2.zip)
File4.jpg
File5.jpg
Pics3 (Pics3.zip)
File6.jpg
File7.jpg
...
Run Code Online (Sandbox Code Playgroud)
我该如何编写脚本.
(1)使用WinRAR:
WinRAR包括两个命令行工具,rar.exe and unrar.exe其中rar.exe压缩和unrar.exe解压缩文件.
两者都位于可C:\Program Files\WinRAR安装版本的文件夹中.
假设,如果有多个子文件夹,C:\MyPictures并且您希望每个子文件夹在父文件夹中获得自己的.rar文件.
从批处理文件中,这适用于您:
@echo off
setlocal
set zip="C:\Program Files\WinRAR\rar.exe" a -r -u -df
dir C:\MyPictures /ad /s /b > C:\MyPictures\folders.txt
for /f %%f in (C:\MyPictures\folders.txt) do if not exist C:\MyPictures\%%~nf.rar %zip% C:\MyPictures \%%~nf.rar %%f
endlocal
exit
Run Code Online (Sandbox Code Playgroud)
说明....
它将在同一父文件夹中的父文件夹C:\ MyPictures下创建所有文件夹/子文件夹的.rar文件.
然后,它将删除父文件夹C:\ MyPictures下的所有原始文件夹/子文件夹,因此您只能将档案保留在同一位置.
"a"命令添加到存档
"-r"开关递归子文件夹
"-u"开关.与"a"命令结合使用时,相当于"u"命令.添加新文件并更新存档中已有文件的旧版本
"-df"开关在将文件移动到存档后删除它们
如果要保留原始子文件夹,只需删除-df switch.
(2)使用7-Zip:
7-Zip是一个压缩比高的文件存档程序.7z.exe是7-Zip的命令行版本.7-Zip不使用系统通配符解析器,它不遵循古老的规则.意味着任何文件.7-Zip零食.匹配具有扩展名的任何文件的名称.要处理所有文件,必须使用*通配符.
在批处理文件中使用7zip命令行选项,下面适用于您:
@echo off
setlocal
for /d %%x in (C:\MyPictures\*.*) do "C:\Program Files\7-Zip\7z.exe" a -tzip "%%x.zip" "%%x\"
endlocal
exit
Run Code Online (Sandbox Code Playgroud)
哪里
- 存档或添加
-t存档类型
| 归档时间: |
|
| 查看次数: |
19912 次 |
| 最近记录: |