我正在努力寻找一个解决方案来扫描目录中的所有文件夹,并在其中的第一个/唯一子文件夹的内容的所述文件夹中创建一个 zip 文件。
这是一个示例文件夹/结构/层次结构
I:\Unsorted\Sony - PlayStation Vita\NoNpDrm Physical\SENRAN KAGURA SV [PCSE00398] [NTSC]\PCSE00398
我想把里面的内容PCSE00398
压缩成一个zip(同名)并留在I:\Unsorted\Sony - PlayStation Vita\NoNpDrm Physical\SENRAN KAGURA SV [PCSE00398] [NTSC]
文件夹中。
要到达子文件夹的最后一级,只需要检查每个子文件夹中是否有另一个文件夹,否则,压缩这个最后一级文件夹。
您可以使用
for /d /r
循环,它将遍历所有文件夹,并在循环内的每个文件夹中,将tree
命令与 一起使用findstr
,您可以在其中检查当前文件夹是否有更多子文件夹。您可以在所有子文件夹中递归地使用,并通过使用findstr "string" ( )检查每个输出,重定向到操作员,如果在命令输出中找不到此字符串,则执行操作 ( ) :
tree "current_looping_folder" /a
for /d /r
"\---"
||
Rar
\---
tree
\---Last Folder
上面的输出来自我所在的文件夹,
F:\SUPERUSER\Q1599429
这里有Last Folder
子文件夹,但如果我在F:\SUPER_USER\Q1599429\Last Folder
子文件夹中,我会得到以下输出:如果
findstr
没有找到字符串"\---"
,我在当前文件夹中没有子文件夹,这是最后一个文件夹:在这种情况下,如果没有子文件夹,命令命令将不会成功,那么让操作员在您实际文件夹级别的最后一个文件夹中执行命令...
tree "Actual_Loop_Folder" /a | findstr "\---"
||
Rar.exe
\
转义字符需要额外\
的findstr
||
操作员如何机械地工作:WinRar.exe
instead运行Rar.exe
,只需删除/替换/编辑:Rar/WinRar
命令使用您的自定义标志/开关:[√]循环
[√] For /D 循环
[√] For /R 循环
[√] WinRar.exe | rar.exe /?
[√] CMD/蝙蝠操作员/dostips.com
[√]条件执行 || && ...