我有一组约10,000个具有以下结构的目录
./AAA/AAA/somedirs/file.txt
..
./BCDE/BCDE/somedirs/file.txt
..
./FGMAB/FGMAB/somedirs/file.txt
..
etc
我想减少两个具有相同名称的连续目录的重复目录路径模式:
./X/X/etc/
到具有该名称的单个目录:
./X/etc/
我想在这样的X / X模式之后找到所有子结构,然后使用如下命令将它们移动到X /:
for /r /d %x in (*/%y/%y/*) do move "%x" ".."
这确实有效,但实际上并没有做任何事情。
有人知道是否以及如何做到这一点?
答案 0 :(得分:1)
假设重复的名称都在树结构的顶部,如图所示,这样的东西应该有效:
md dummy\x
for /D %x in (*) do if exist %x\%x cmd /c "move %x dummy\x\%x & move dummy\x\%x\%x %x & rd dummy\x\%x"
先测试一下! (并且记住当命令在批处理文件中时,百分比符号需要加倍。)