如何缩短目录路径模式

时间:2012-09-15 12:22:43

标签: windows windows-7 command-line

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

这确实有效,但实际上并没有做任何事情。

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

1 个答案:

答案 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"

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