windows - 批量递归压缩所有嵌套子目录
问题描述
我有一个具有以下结构的文件夹:
Year
Month
Day
file
file
file
Day
file
file
Year
Month
Day
file
file
file
Day
file
file
我想压缩所有“Day”文件夹以便稍后移动它们。
到目前为止,我已经尝试了一些我在 SO 上找到的替代方案,但我似乎无法得到我需要的结果,而且我什至无法通过自己的尝试克服语法错误。这是我到目前为止所拥有的:
for /d %%A in (C:\test) do
for /d %%B in (C:\test\*) do
for /d %%C in (C:\test\*\*) do
"C:\Program Files\WinRAR\rar.exe" a -r -u -rr
解决方案
通配符只允许在路径的最后一个元素中使用,所以类似C:\test\*\*
的东西不起作用。
无论如何,您非常接近解决方案:
for /D %%Y in ("C:\test\*") do (
for /D %%M in ("%%~Y\*") do (
for /D %%D in ("%%~M\*") do (
pushd "%%~D" && (
rar a -r -u -rr "..\%%~nD.rar" "*.*"
popd
)
)
)
)
do
您只是忘记在关键字所在的同一行继续循环主体(注意(
此处同一行的开头),并且您错过了在内部循环中使用外部循环的for
循环元变量。
这应该创建由文件夹命名并位于文件夹中的.rar
存档文件。如果您希望将它们放入文件夹中,只需从.Day
Month
Day
..\
..\%%~nD.rar" "*.*
推荐阅读
- node.js - 如何在反应本机android应用程序中隐藏api url?
- python - 复制修改的Django项目剧照显示旧模板
- python - 在 Python 中使用 *args 时出现 TypeError
- angular - 使用@angular/cdk 拖放会给出错误的拖放事件数据
- python - Python中的下标unicode字符符号
- r - 当我使用 read html() 阅读网页时,不包含 HTML 节点
- javascript - javascript blob 中的换行符未呈现
- prometheus - Prometheus 仪表板未更新网站状态
- android - 自定义 ExoPlayer 控制功能
- java - 按名称中的日期对文件数组进行排序