批处理if语句有问题

时间:2014-08-15 01:27:59

标签: batch-file

我已经努力找出我的if语句有什么问题......我可能错过了一些非常明显和愚蠢的东西,但我找不到它。

@Echo OFF
:Home

set Password= "Pass"
set /p input= Password:

if "%input%" == "%Password%" (
    Echo Password Correct!
    pause
)
if "%input%"  "%Password%" (
    Echo Password Incorrect!
    cls
    goto Home
)

这不起作用:

@Echo OFF
:home

set Password= "Pass"
set /p input=Password:

if "%input%" == "%Password%" goto correct
if "%input%" != "%Password%" goto incorrect

:correct
Echo Password Correct!
pause

:incorrect
Echo Password Incorrect!
cls
goto home

1 个答案:

答案 0 :(得分:0)

试试这个

@Echo OFF
:Home

set Password=Pass
set /p input= Password:

if "%input%" == "%Password%" (
    Echo Password Correct!
    pause
) else  (
    Echo Password Incorrect!
    goto Home
)

进行了3次更改

  1. 从批量文件中删除了设置密码行中的引号,这是不必要的&实际上会将引号作为变量的一部分 - 因此只有在用户输入引号时它才会比较为true。
  2. 删除了`cls1。在打印错误消息后立即显示清晰的屏幕意味着您将永远不会看到错误消息。
  3. 将2 if更改为if-else