2017-01-09 2 views
1

私は特定の変数を作成するバッチコードを持っています。しかし、IFステートメントを追加して、ユーザーが最初の変数に "Technology"を入力した場合は、別の変数を作成して追加情報を要求するようにします。 Pythonスクリプトは、これらの変数を読み込んで処理します。ここでIF文がtrueを返す場合、新しい変数を設定するには?

はコードです:

set constraint_type=1 
set constraint_technology=1 

set /p constraint_type="Enter constraint type (E.g. "Equipment" or "Technology"): " 
IF /I !constraint_type!=="Technology" set /p constraint_technology="Enter Technology name: " 

cmd /k python "script.py" %constraint_type% %constraint_technology% 
@echo on 

コードが実行されますが、ユーザーはconstraint_technology変数の入力を求められません。何か不足していますか?

+0

'IF/I CONSTRAINT_TYPE == "技術"' - !!> 'IF/I "%のCONSTRAINT_TYPEの%" == "技術"'(通常 '%'拡張、引用符を使用して空のエントリに問題が発生しないようにしてください) – aschipfl

+0

@aschipfl - 恐れて、チップありがとう;) – Joseph

答えて

1

おそらく

!constraint_type!はそれなしで評価しないだろう遅延拡張を有効にしませんでした。また、バッチはそれをしないので、引用符を削除するので、入力に引用符を入れないので、比較は常にfalseになります。

さらに改善されました。標準のenvを使用してください。 VaRの区切り文字、すべてのケースで動作し、

IF /I %constraint_type%==Technology 
+0

あなたの答えはありがとうございます。 – Joseph

+1

私の編集をチェックしてください。引用符が問題でなければなりません。 –

+0

あなたは絶対に正しいです、今は素晴らしい作品です。あなたの答えに多くの感謝:) – Joseph

関連する問題