7zip 命令行 - 来自源文件名的存档名称

Posted

技术标签:

【中文标题】7zip 命令行 - 来自源文件名的存档名称【英文标题】:7zip command line - archive name from source file name 【发布时间】:2013-10-28 11:37:20 【问题描述】:

如何读取源文件的名称并使用 cmd 存档选项将其作为 7zip 中的存档名称发送。

现在我使用:

7z a -t7z V:\archive.7z V:\Backup\*.bak

我想检查 V:\Backup 中的 bak 名称文件(始终只有 1 个文件)并将其作为 archive.7z 发送 - 例如,如果在 V:\Backup 中是 1 个名为 "20131028_1100.bak" 的文件,我想将存档命名为 @987654326 @

【问题讨论】:

【参考方案1】:

您需要一个执行 FOR 命令的 .bat 脚本,如下所示: for %%X in (*) do "7zip\App\7-Zip\7z.exe" a "%%~nX.zip" "%%X"

%%X 将捕获您将执行脚本的文件夹中包含的每个文件的文件名(在本例中为 V:\Backup\ 并且只会处理 1 个文件),因此 %%~nX.zip 将取那个文件名

【讨论】:

【参考方案2】:

7zip 将源文件名保存到存档

正如“capa”所说,必须使用shell命令,因为7zip没有提供这种情况下的命令。 以下编辑的命令可用于操作 *.bak 文件,它适用于“7z”压缩扩展。它在压缩率上比“zip”格式更有效。

7z 格式 FOR %%I IN (.bak) DO "c:\Program Files\7-Zip\7z.exe" a -t7z %%~nI.7z %%~nI.

压缩格式 FOR %%I IN (.bak) DO "c:\Program Files\7-Zip\7z.exe" a -tZip %%~nI.zip %%~nI.

在上述命令中,.bak 之前的“*”符号没有出现。请添加! 还要在每个命令的末尾添加“*”。

*在 *.bak 文件目录上创建一个“bat”文件,例如“compressbak.bat”,复制并粘贴首选命令(7z 或 zip),“保存”“compressbak.bat”中的内容!这将在 *.bak 文件保存的同一文件夹中创建 *.bak 文件的命名存档。此外,如果您在 Windows x64 上运行并且您拥有 x86 版本的 7-Zip,您必须遵循正确的路径才能调用 7z.exe 文件。 "c:\Program Files (x86)\7-Zip\7z.exe"

Folder and bat file content!

希望对你有帮助!!!

【讨论】:

以上是关于7zip 命令行 - 来自源文件名的存档名称的主要内容,如果未能解决你的问题,请参考以下文章

命令行创建两个文件夹的 7z 存档和一个文件以自解压到指定位置

python 这个python脚本是着名的Wayback Machine网站存档爬虫的简单命令行实现。

7zip 命令行自解压器不要求路径

windows 下借助7zip实现命令行解压缩

使用7zip,通过命令行解压包内指定文件

使用7zip,通过命令行解压包内指定文件