使用 7zip 命令将目录中的文件归档到单个 zip [关闭]

Posted

技术标签:

【中文标题】使用 7zip 命令将目录中的文件归档到单个 zip [关闭]【英文标题】:Archiving files in directory with 7zip command into single zips [closed] 【发布时间】:2014-11-15 20:59:11 【问题描述】:

在这里做了很多搜索之后,我设法整理了一个使用 7zip 归档文件目录的批处理脚本。我遇到的问题是,它不是将每个文件放入它自己的 zip 文件中,而是多次归档整个文件文件夹并简单地重命名它们以匹配文件夹中的每个文件。

for %%X in (C:\test\*.txt) do "C:\Program Files (x86)\7-Zip\7z.exe" a -tzip "%%X.zip" *.txt

在上面的代码中,想法是在 C:\test\ 中查找所有 txt 文件,并将它们压缩成单独的 zip 文件。它有点这样做,但不是有多个 zip 文件,每个文件里面有 1 个文件,我有多个 zip 文件,里面有每个文本文件。除了名称之外,每个 zip 都是相同的。

有人有什么想法吗?我确定我只是在错误的地方粘贴了一些东西,但我已经尝试了目前我能想到的所有方法。

【问题讨论】:

但是...您显然是在要求 7-zip 创建单独命名的 zip 文件,然后添加 *.txt。你为什么不将文件名也传递给 zip 到 7-zip,即。你为什么使用 *.zip? 如果你用%%X 替换最后的*.txt 会发生什么? 顺便提一下,这个问题更适合Super User。 【参考方案1】:

让我们分解你的命令:

    对于文件夹中的每个文本文件:

    for %%X in (C:\test\*.txt) do
    

    创建一个与文本文件同名的 zip 文件,仅添加 .zip:

    "C:\Program Files (x86)\7-Zip\7z.exe" a -tzip "%%X.zip"
    

    并添加文件夹中的所有文件:

    *.zip
    

第 3 点显然是错误的。您想添加保证 zip 文件的单个文件:

"%%X"

完整的命令应该如下所示:

for %%X in (C:\test\*.txt) do "C:\Program Files (x86)\7-Zip\7z.exe" a -tzip "%%X.zip" "%%X"

【讨论】:

就是这样!哇..我可以发誓我尝试了 100 倍。这就是我盯着它看太久的结果。

以上是关于使用 7zip 命令将目录中的文件归档到单个 zip [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 7zip 归档子文件夹而不归档档案的 Bash 脚本

tar 命令

Linux 中 17 个 tar 命令实用示例

sh 创建和解压缩归档命令行7zip

掌握 tar 命令让你秒变大牛

cad归档的命令是啥