2

私は次の構造を持つ約10.000のディレクトリのセットを持っています

./AAA/AAA/somedirs/file.txt
..
./BCDE/BCDE/somedirs/file.txt
..
./FGMAB/FGMAB/somedirs/file.txt
..
etc

同じ名前の2つの連続するディレクトリの繰り返しディレクトリパスパターンを減らしたい:

./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"

まずはテスト!(コマンドがバッチ ファイルにある場合は、パーセント記号を 2 倍にする必要があることに注意してください。)

于 2012-09-16T20:58:14.533 に答える