2012-03-05 9 views
0

*.wavというファイルが何百ものフォルダに広がっています。すべてのファイルを1つ上に移動するためのコマンドラインを手に入れるためには助けが必要です。すべてのこれらのファイルのディレクトリ構造は同じですが、フォルダの名前が若干異なる場合:すべてのファイルをMANYフォルダから1つ上のレベルに移動 - コマンドライン

Z:\オーディオ\レベル* \物語* \語彙\ * wavファイルにすべてのファイルがある

VOCABフォルダにある、と私はstory*のフォルダに移動する必要があります。

Z:\オーディオ\レベル* \物語* \ * WAV

個々のフォルダごとにmoveコマンドを実行してコマンドラインから実行できますが、ディレクトリ全体のすべてのファイルに対して再帰的に実行する方法はありますか?ロケーションパスでワイルドカードを使用できますか?

メモ: *レベル*およびストーリー*は数字01-24です。
私はWindows XP Professionalを使用しています。

ご協力いただきありがとうございます!

答えて

0

別のフォーラム(http://www.computerhope.com/forum/index.php/topic,98046.0/all.html)で同様の質問が見つかりました。彼らのコードの一部を変更する

は、ここでは(すべてでそれを解き放つ前に、小さなサブセットに試してみてください)トリックを行う可能性があるバッチファイルのスクリプトです:

@echo off 
set thisdir=%cd% 
for /f "delims=" %%A in ('dir /b /ad') do (
    cd /d "%%~dpnA" 
    for /f "delims=" %%B in ('dir /b /ad') do (
     echo Level 2 Directory: %%~dpnB 
     cd /d "%%~dpnB" 
     for /f "delims=" %%C in ('dir /b /ad') do (
      echo Level 3 Directory: %%~dpnC 
      cd /d "%%~dpnC" 
      move *.* ..\ 
      cd .. 
      rd "%%~dpnC" 
     ) 
     cd .. 
    ) 
    cd.. 
) 
cd /d "%thisdir% 
+0

ありがとう!!私はあなたが参照したフォーラムを振り返る前に、このコードを少し苦労しました。私は次のコードを使って、非常に小さくシンプルなバッチファイルを作成するために、非常に小さなコードを取りました: '/e%off/f %% P in( 'dir/b/od')do%/d/b/od ')の/ f %% Pのための\ VOCAB \ *。*。\ %% P \ REMを実行して、 'フォルダー。これらのフォルダは24個しかないので、それはとてもシンプルな仕事でしたし、それはトリックでした!再度、感謝します! –

1

は次のようなものを試してください:

for /r %F in (*.wav) do move %F %~pF\.. 

は(...私は「コード」非常に適切ではなかった、特に場合)を基準として、コマンドプロンプトからfor /?を参照してください

私からそれを開始示唆します\Audioディレクトリ内。

+0

私はこのような解決策に賛成ですそれがいかに簡単かの理由で!ただし、このコマンドを実行すると、レベルを上に移動するのではなく、すべてのファイルが開始ディレクトリに置かれます。 '%〜pF'コードを使ってファイルを1レベル上げるにはどうすればよいですか?それとも '\ ..'がやるべきことなのでしょうか? (申し訳ありませんが、私は '\ ..'に慣れていません) –

+0

ディレクトリ内の '..'は、それが置かれているディレクトリの直上のディレクトリを表します。 – contributor

関連する問題