2016-09-05 12 views
0

私は次の変数を取るコード作成しました:その後変更変数

SET sdir=T:\path\to\in\ 
SET tempdir=T:\path\to\tempBatch\ 
SET list=DE NL 

を、私はリスト項目をループしてみてくださいとtempBatchフォルダにそれらのすべてのTXTファイルをコピーします。

(for %%l in (%list%) do (
    set tempINdir=%sdir%%%l 
    echo %%l 
    echo %tempINdir% 
)) 

私が手出力は次のようになります。

私が手出力は次のとおりです:

DE 
T:\path\to\in\DE 
NL 
T:\path\to\in\NL 

DE 
T:\path\to\in\NL 
NL 
T:\path\to\in\NL 

はもちろん、私は%sdir%パスと%%l変数CONCATENATEを持つようにしたいです

なぜ、リスト内の最後の項目を取るのは、creati ng tempINdir?私はsetlocal EnableDelayedExpansionthis answerから使用しようとしましたが、これは何もしません。

+4

*有効にする* [delayed expanison](http://stackoverflow.com/a/30284028/2152082)では不十分です。 'echo!tempINdir! ' – Stephan

+0

[ループ用バッチスクリプトは変数を設定しません](http://stackoverflow.com/questions/12518242/batch-script-for-loop) -wont-set-variable) – aschipfl

+0

@aschipfl、質問によると:その答えは私を助けませんでした。 –

答えて

0

としては、ステファンのコメントにしてthis answerで説明:!の

遅れ変数は、VARで参照されています!代わり%のVaRの%の

ので、forループであなたは!var!の代わり%var%使用する必要があります。