2011-01-15 14 views
7

サブフォルダが多数あり、それぞれに1つ以上のファイルがあるフォルダがあります。私はすべてのファイルをC:\ songs(たとえば)に移動するバッチファイルを作成しようとしています。どんな助け?私はすでにサブコマンド内のすべてのファイルを1レベル上に移動するDOSコマンド

C:\>FOR /R C:\Test %i IN (*) DO MOVE %i C:\Songs 

テストや歌が存在するフォルダを試してみましたが、私は間違って何をやっている

%i was unexpected at this time. 

というエラーを取得しますか?

答えて

5
FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs 

バッチファイルでは、%% iにする必要があります。バッチの奇妙な変わり者。

+0

これを実行しましたか?私にとっては、コンソールをハングアップするだけです。奇妙な。 –

+0

フォルダが大量の場合、すべてを再帰的に解析するのに時間がかかります。はい、私はそれをテストしました.Windows 7で、今はXPでテストしました。正規のMS-DOSには\ *。\ *が必要です。 – SilverbackNet

+0

作品。ありがとう:) – Rishi

5

(1アップサブディレクトリにファイルを移動)

for /r %x in (*.*) do move "%x" "%x"/../.. 

(最後の部分は、私は通常、後方に傾斜を使用しますが、このクレイジーな事は、何らかの理由のためにそれらを削除続けた。それはしかしどちらかのように動作します)

(不要なディレクトリを削除)

for /d /r %x in (bin) do rd "%x" 

つまり、あなたがそれらの 下の「bin」ディレクトリ内のファイルとディレクトリの束を持っていたし、あなたが望んでいた場合1をすべて上に移動し、 "bin"ディレクトリを削除します。

+0

最初のコマンドを '(* 。*) '? (これは、カスタムコンテキストメニューコマンドで使用するバッチファイル用です。) – u01jmg3

関連する問題