2017-01-09 93 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/constraint_type == 「技術」'! - >'IF/I 「%constraint_type%」 == 「技術」'(正常''%擴展和報價,以避免空入境麻煩) – aschipfl

+0

@aschipfl - 真棒,感謝您的提示;) – Joseph

回答

1

你可能沒有啓用延遲擴展

!constraint_type!就沒有它的評估。也刪除引號,因爲批量不會這樣做,所以比較將始終爲假,因爲用戶不會在引號中輸入引號。

更好的解決方法:使用標準環境。 VAR分隔符,適用於所有的情況下,

IF /I %constraint_type%==Technology 
+0

感謝您的回答,但問題仍然存在。 – Joseph

+1

檢查我的編輯。報價必須是問題。 –

+0

你是絕對正確的,現在效果很好。非常感謝您的回答:) – Joseph