2

我有一组大约 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" ".."

这确实运行,但它似乎并没有真正做任何事情。

任何人都知道是否以及如何做到这一点?

4

1 回答 1

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"

先测试一下!(请记住,当命令在批处理文件中时,百分号需要加倍。)

于 2012-09-16T20:58:14.533 回答