2017-05-16 10 views
2

特定の拡張子のファイルの一部をコピー先のディレクトリに移動したい。ここに私のバッチファイルの一部です:複数の拡張子のファイルをバッチを使用してループ内で移動する

move "%filepath%\*.txt" "%~dp0" 
move "%filepath%\*.docx" "%~dp0" 
move "%filepath%\*.pdf" "%~dp0" 
move "%filepath%\*.jpg" "%~dp0" 
move "%filepath%\*.png" "%~dp0" 

上記のコードは正常に動作します。しかし、私はループでそうしたい。

set f_ext=*.txt *.docx *.pdf *.jpg *.png 
for %%f in (%f_ext%) do (
    move "%filepath%\%%f" "%~dp0" 
) 

上記のコードは、コピー先のフォルダ(%~dp0)内の同じ名前のファイルがすでに存在する場合にのみ動作しますが、それはそうでない場合は動作しません:私は、次のようにしようとしています。

したがって、ファイル名を必要としないバッチを使用してループ内の一部の拡張子のファイルを移動先フォルダに移動するにはどうすればよいですか?

答えて

2

問題がforでワイルドカードがmoveコマンドにそれを現在のアクティブディレクトリ内のファイルを反復

set f_ext=.txt .docx .pdf .jpg .png 
for %%f in (%f_ext%) do (
    move "%filepath%\*%%f" "%~dp0" 
) 

変更forからワイルドカード(拡張セットから削除)させることです。

関連する問題