长期潜水,第一次发帖。
我浏览过这个网站,用谷歌搜索过,也做过实验。虽然我离我想要去的地方非常非常近,但似乎还有最后一个障碍我无法克服。我本应该在这个帖子上发个回复...
如何在 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 /?
在提示符下键入或参阅类似以下的在线参考资料
或者在这里寻找‘变量替换’: