如果IF语句返回true,如何设置新变量?

时间:2017-01-09 15:27:52

标签: windows batch-file command-prompt

我有一个创建某些变量的批处理代码。但是,我想添加一个IF语句,以便用户输入"技术"对于第一个变量,它然后创建另一个变量并要求提供其他信息。然后python脚本读取这些变量以进行进一步处理。

以下是代码:

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变量。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

您可能没有启用延迟扩展

如果没有它,

!constraint_type!就无法评估。同时删除引号,因为批次不会这样做,因此比较将始终为假,因为用户不会在输入中放置引号。

更好的解决方法:使用标准环境。 var delimiters,适用于所有情况,

IF /I %constraint_type%==Technology