2012-04-23 16 views
15

これは私の問題です。バッチファイルで1行ずつtxtを読む

abc.mpg 
def.mpg 
ghi.mpg 
xyz.mpg 

私はそれらの動画にいくつかのコマンドを使用して一つ一つを処理し、(拡張子なし)と同じ名前のフォルダに結果を置きたい:私は100異なるビデオ名(例)とtxtファイルを持っています:

command1 abc.mpg 
command2 abc.mpg 
move results .\abc 

私の質問は、バッチファイル内でforループを使って上記の繰り返しを実行する方法です。

答えて

22

コマンドは次のように/ Fパラメータを持つためのものです。この

FOR /F %i in (yourFile.txt) DO yourcommand %i 

これはテキストファイルから一度にラインを読み取り、次にDOの後に指定されたコマンドを呼び出す%のI引数 に値を挿入キーワード(コマンドはコピーまたは移動操作が必要な別のバッチになる可能性があります)

+9

リスト内のファイル名に空白が含まれている場合は、 '/ delimals =' ''(または '' tokens = * ''' F': 'FOR/F" delims = "%i IN ..."。 –

+2

'yourFile.txt'の前後に二重引用符を入れると、' FOR'はファイルを読むのではなく、そのテキストの上をループします。 cmdはとても混乱します。 [ss64 FOR /F](http://ss64.com/nt/for_f.html)のドキュメントは、その詳細をすべて詳しく説明しています。 – binki

関連する問題