2017-07-12 13 views
-1

特定のコードブロックを実行する前に、ユーザーの入力をチェックするバッチスクリプトがあります。どちらのブロックも同じ変数を操作しますが、2番目のブロックの変数は、実行する最初のブロックを選択しても設定されているようです。バッチスクリプトexccheting unchosenコードブロック

コード:

if %x == 1 goto :Block1 
if %x == 2 goto :Block2 

:Block1 
set variable== "Works" 

:Block2 
set variable == "Works" 

ブロック2は、私は何かが欠けても、I入力1アムあれば実行されていますか?

+1

'%x%'は '%x 'ではなく' x'の現在の値にアクセスします。 – Magoo

答えて

0

多くの言語とは異なり、バッチには「手続き」の終わりという概念がありません。ファイルの終わりに達するまで行単位で実行を継続します。したがって、メインラインを完了した後にgoto :eofにする必要があります。それ以外の場合は、サブルーチンコードを実行し続けます。 :EOFは、CMDによって理解される所定のラベルであり、end of fileを意味する。コロンはが必要ですです。

+0

チャームのように機能しました! –