![使用命令行将文件单独打包为 .zip 格式,同时保留目录结构](https://linux22.com/image/1398844/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B0%86%E6%96%87%E4%BB%B6%E5%8D%95%E7%8B%AC%E6%89%93%E5%8C%85%E4%B8%BA%20.zip%20%E6%A0%BC%E5%BC%8F%EF%BC%8C%E5%90%8C%E6%97%B6%E4%BF%9D%E7%95%99%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84.png)
我正在尝试创建一个cmd
脚本,以递归方式遍历目录并单独压缩每个文件。我在这里完成了:
for /R %%b IN (*.*) do ( "C:\Program Files\WinRAR\WinRAR.exe" a "%%~nb.zip" "%%b" )
但是,我想将 zip 文件保留在原始文件夹结构中,并将结果放在与原始文件夹不同的文件夹中。例如:
前:
/original
/some_files
file-1.txt
file-2.txt
后:
/original
/some_files
file-1.txt
file-2.txt
/packed
/some_files
file-1.zip
file-2.zip
有人对如何改变原文有什么建议吗?
答案1
我能找出一些接近的东西:
for /R %%b IN (*.*) do ("C:\Program Files\WinRAR\WinRAR.exe" a -ibck "%%~pb\%%~nb.zip" "%%b" )
它在它们所在的目录中创建 zip 文件。我之前可以添加正确的路径,%%~pb
但它目前提取完整路径“C:\Users\Matt...”,所以我可能需要一些不同的东西。
-ibck
让 WinRAR 在后台运行。
但这足以解决我的问题。