2011-07-13 4 views
1

可能性の重複:
Random variable not changing in “for” loop in windows batch fileバッチファイルでループの

私は名前を変更するファイルのリストをテキストファイルを持っています。これは私のコードです:

for /f %%i in (tmp.txt) do set script_name=%%i & ren %script_name% %script_name:~0,9%%num%%script_name:~15,9%.sql 

しかし、第二部ではそれだけでループの最初の繰り返しで%script_name%をとります。したがって

ren %script_name% %script_name:~0,9%%num%%script_name:~15,9%.sql 

常に同じです。

修正するのを手伝ってください。

+0

[この質問](http://stackoverflow.com/questions/6500217/random-variable-not-changing-in-for-loop-in-windows-batch-file)は基本的に同じ問題です。 –

答えて

3

set /?を参照し、遅延環境拡張を調べてください。最初に SETLOCAL ENABLEDELAYEDEXPANSION setlocal /?も参照してください)の後、%の代わりにrenの変数を!で囲みます。私も& &を使用してコマンドを連結するので、最初のコマンドは2番目のコマンドが開始する前に完了します。

+1

'&&'は前のコマンドの実行結果をチェックすることを意味し、 '&'はそうではありません。また、それは 'EnableDelayedExpansion'(' EnableExtensions'は何か別のものです)です。 –

+0

@Andriy:ありがとう、タイポが修正されました。 –

関連する問題