gpt4 book ai didi

windows - 用于压缩子目录的批处理文件

转载 作者:可可西里 更新时间:2023-11-01 13:54:43 37 4
gpt4 key购买 nike

我正在尝试编写一个批处理脚本,它将使用 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
...

我如何编写脚本。

最佳答案

(1) 使用WinRAR:

WinRAR 包括两个命令行工具,rar.exe 和 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

解释....

  1. 它将创建父目录下所有文件夹/子文件夹的 .rar 文件同一父文件夹中的文件夹 C:\MyPictures。

  2. 然后,它会删除父文件夹下的所有原始文件夹/子文件夹文件夹 C:\MyPictures,因此您将只剩下文件 在同一个地方。

    • “a”命令添加到存档

    • “-r”开关递归子文件夹

    • “-u”开关。与“a”组合时相当于“u”命令命令。添加新文件并更新文件的旧版本已经在存档中

    • “-df”开关在文件移动到存档后删除文件

如果您想保留原始子文件夹,只需删除 -df 开关

(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

哪里

  • -存档或添加

  • -t 存档类型

关于windows - 用于压缩子目录的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779850/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com