我有选择参数的以下值:
名称:帕拉姆 选择:
和一个执行Windows批处理命令:
if (%Param% == "Test1") (
echo "1"
) else if (%Param% == "Test2") (
echo "2"
) else (
echo "3"
) ---is not working
if (%Param% == "Test1") (
echo "1"
) else ( if (%Param% == "Test2") (
echo "2") else (
echo "3"
)
) ---is not working
set "Param=Test2"
if "%Param%" == "Test1" (
echo "1"
) else if "%Param%" == "Test2" (
echo "2"
) else (
echo "3"
)
几乎在第一个例子中有它。您没有将比较封装在批处理文件中的(
和)
之间进行测试。
比较是字面意义的,因此一方面需要匹配另一方。这包括双引号。因此,没有引号的变量可能要求它们匹配,例如"%Param%" == "Test1"
。 %Param% == "Test1"
在上面的例子中永远不会匹配,因为%Param%
的值没有双引号。
您的固定批处理文件应如下所示:
if "%Param%" == "Test1" (
echo "1"
) else (
if "%Param%" == "Test2" (
echo "2"
) else (
echo "3"
)
)
if "%Param%" == "Test1" (
echo "1"
) else (
if "%Param%" == "Test2" (
echo "2"
) else (
echo "3"
)
)
所以...这两个if
声明,如果扩展完全相同,不确定你想做什么。
注意:
()
)和双引号(""
)包含在比较中,所以我删除它们并双引两个字符串。if
声明,以使它们更清晰,你看到 - 它们是相同的。