2017-08-10 19 views
0

これはWindowsのcmd.exeの質問です。変数を設定しようとした後、& &を使用して、その変数を1つのコマンドラインで参照する別のコマンドを含めると機能しません。変数は、次の行が処理されるまで設定されません。再現するWindowsバッチ:&&エコーが機能しない

ステップ:

set X=1 && echo %X% 
%X% 

echo %X% 
1 

set X=2 && echo %X% 
1 

echo %X% 
2 

予想通り、この作品を作るための方法はありますか?

+0

2つのアンパサンドにつきましては一切の必要はありませんを印刷するでしょう。 1つのケースを作ることができますが、私はまだ 'echo'コマンドを次の行に置くべきだと言っています。 – Compo

+1

「これはWindowsのバッチファイルに関する質問」の場合、コマンドラインから例を取り上げる理由は?最初の行はバッチファイル_の異なる出力を示しています。 'set X = 1 && call echo %% X %%' [この回答を見る](https://stackoverflow.com/questions/9970348/how-to-realize-an-assignment-within-the- if-block/9970460#9970460) – Aacini

答えて

1

最初の行してください:setlocal enabledelayedexpansionその後、

set X=I_AM_ECHOED && echo !X! 
echo !X! 

I_AM_ECHOED 
I_AM_ECHOED 
+0

いいえ、コマンドラインであり、バッチファイルではありません。まったく異なる。 –

+0

setlocal enabledelayedexpansion && set X = FOO &&エコー!Z!結果:!Z! –

関連する問題