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 存档和一个文件以自解压到指定位置