2017-03-29 14 views
1

Windows 7がインストールされたHDDからファイルを回復しました 今、私は数千から数千のファイルとフォルダを持つ、私はバッチを実行する現在のフォルダ内のファイルを探します、私はそれが内部のフォルダを見てほしいmovin * .doc、* .pdfなどの再帰バッチファイル

@echo off 

move /y "*.xml" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\xml" 

move /y "*.pdf" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\documentos" 

move /y "*.cat" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\cat" 

move /y "*.dll" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\dll" 

答えて

0

見て、この時、そのフォルダと私の悪い英語のため..だから 申し訳ありません:

@echo off 
for /R %temp% %%f in (*.*) do (
echo %%f) 

ここでは、forループをパラメータ "/ R"で見ることができます。 "/ R"はループを再帰的にしてサブフォルダにも見せます。

-1
@echo off 
SETLOCAL 
for /D /R %%a in (*) do (
pushd "%%a" 
move /y "*.xml" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\xml" 
move /y "*.pdf" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\documentos" 
move /y "*.cat" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\cat" 
move /y "*.dll" "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\dll" 
popd 
) 

ソースからのすべてのディレクトリで一連のコマンドを実行する必要があります。

SETLOCALはオプションです。浴室が終了すると、環境の変更が破棄されます。この場合は何もありませんが、それは関係なく一般的です。

for /d命令は、マスク*と一致する各ディレクトリ名を%%aに順番に割り当てます。 pushdは一時的にデフォルトディレクトリをその名前に設定し、move命令が実行され、popdが元のディレクトリを復元します。

ファイルx.extが複数見つかった場合は、その名前の最後のファイルが移動され、他のファイルが置き換えられることに注意してください。

おそらく

xcopy /s *.xml "D:\backUP_arqui\Recovered data 03-10 20_23_41\Deep Scan result\" 

に役立つことがあります。すべての.xmlファイルをソースからデスティネーションにコピーし、ソースディレクトリの下にあるデスティネーションディレクトリの下に同じディレクトリ構造を構築します。こうすることで、重複した名前がある場合に備えて元のファイルのコピーを作成できます。明らかに、あなたが必要とする各ファイルタイプの指示を繰り返す必要があります。

+0

ファイル拡張子ごとに自動的にディレクトリを作成することもできますが、これは非常に危険です。:) –