对于选择参数,我具有以下值:
名称:Param
选择:
和一个执行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
答案 0 :(得分:0)
您的固定批处理文件应如下所示:
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
语句,以使它们更清晰,您发现-它们是相同的。答案 1 :(得分:0)
set "Param=Test2"
if "%Param%" == "Test1" (
echo "1"
) else if "%Param%" == "Test2" (
echo "2"
) else (
echo "3"
)
在第一个示例中几乎有。
您未在批处理文件中附上用于测试(
和)
之间的比较。
比较是字面的,因此一侧的内容需要与另一侧的内容匹配。
这包括双引号。因此,不带引号的变量可能需要它们
匹配例如"%Param%" == "Test1"
。 %Param% == "Test1"
永远不会匹配
在上面的示例中,%Param%
的值没有双引号。
答案 2 :(得分:0)
为什么不循环 For /L
?
For /l %%i In (1 1 3) Do If "%Param%"=="Test%%~i" Echo="%%i"