使用7-zip命令行解压缩时重命名文件

5

我正在使用以下命令解压文件:

"C:\Program Files\7-Zip\7z.exe" x "\\server\folder\backup.gz" -aoa "-o\\server\folder\"

我查看了7-zip帮助部分以及使用-aoa的示例,但并不是很清楚。使用谷歌后,我可以在一个名为sevenzip的网站上找到解决方案,但这个网站现在不可用。我还想使用rn命令,但我不确定应该将它放在哪里。


没有问题,可以访问7zip帮助网站。-aoa开关用于覆盖文件。-aou用于在目标目录中重命名提取的文件(如果已存在)。-aot用于重命名目标目录中现有的文件。 - Squashman
抱歉,我的意思是这个网站似乎有更详细的答案。https://sevenzip.osdn.jp/chm/cmdline/commands/rename.htm 7zip网站只是类似于帮助文档。如果使用-aou,我在哪里指定文件名? - Jaz
你不需要这样做。帮助文件明确说明,根据你使用的开关选项,它会在基本文件名后添加“_1”。 - Squashman
2个回答

8

我自己也在寻找解决方案。当然,仅在提取一个文件时将文件提取到完全不同的文件名才有意义。

我最终做的是提取标准输出(-so)并将输出重定向到所需的名称:

  7z e my-compressed-file.7z -so readme.txt > new-filename.txt

命令7z e -so file.7z > newfile.ext 运行得很好 ;) 谢谢你!真的解决了我的问题! - João Ciocca
不幸的是,通过标准输出重定向文件会导致生成一个带有当前时间戳而非原始时间戳的文件。 - gwideman

1

我对Mark的脚本进行了一些调整,以适应更高级的使用。

for %%f in (folder\*.7z) do (7z e "%%f" -so -r *filename1*.jpeg *filename2*.jpg > tmp\%%f.jpg)
  • 现在可以循环遍历多个源文件 for %%f in (folder\*.7z)
  • 带有可选子文件夹的源文件通配符 folder\*.7z
  • 多个特定的提取文件,带有通配符 *filename1*.jpeg *filename2*.jpg
  • 递归搜索源文件 -r
  • 输出文件与输入源文件同名,带有可选子文件夹 tmp\%%f.jpg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接