如何为选择参数添加其他条件?

时间:2019-03-26 16:47:39

标签: windows batch-file

对于选择参数,我具有以下值:

名称:Param
选择:

  • Test1
  • Test2
  • Test3

和一个执行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

3 个答案:

答案 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"