如何为 7zip 中选定的每个文件/目录创建单独的 7z 文件?

如何为 7zip 中选定的每个文件/目录创建单独的 7z 文件?

长期潜水,第一次发帖。

我浏览过这个网站,用谷歌搜索过,也做过实验。虽然我离我想要去的地方非常非常近,但似乎还有最后一个障碍我无法克服。我本应该在这个帖子上发个回复...

如何在 7zip 中为每个选定的文件/目录创建单独的 zip 文件?

..但我想随着时间的流逝,对该帖子已经不允许进一步发表评论了。

无论如何,以下是我想在 7zip 中从命令行完成的操作:-将每个单独的文件压缩到其自己的存档中 -维护目录结构 -让存档位于其每个存档对应文件的原始文件夹中 -存档后删除原始文件

这个命令让我如此接近......

FOR /R %i IN (*.*) DO "C:\Program Files\7-Zip\7z.exe" a "%i.7z" "%i" -sdel

该命令存档每个单独的文件。它保留目录结构中的文件。存档后删除原始文件。但是,命名有点不对。例如:我存档了一个名为“handsome.txt”的文件。它没有给我留下所需的存档名称“handsome.7z”,而是给我留下了一个名为“handsome.txt.7z”的存档。

我到底该如何运行这个命令,同时让档案名称不再包含原始扩展名?

提前致谢。

答案1

在您的命令中,当 FOR /R 扫描文件夹结构时,参数"%i"会扩展到每个文件名和扩展名,但"%~dpni"只会获取路径+文件名,而不获取扩展名。因此,请尝试以下操作以根据需要创建 7z 文件名(您只需更改"%i.7z""%~dpni.7z"):

FOR /R %i IN (*.*) DO "C:\Program Files\7-Zip\7z.exe" a "%~dpni.7z" "%i" -sdel

~要查看波浪号如何修改变量替换(包括 FOR 元变量扩展)的解释,请FOR /?在提示符下键入或参阅类似以下的在线参考资料

参数扩展

或者在这里寻找‘变量替换’:

Windows 命令:FOR

相关内容