Batch file 批次:„;否则“;。这个代码怎么了?

Batch file 批次:„;否则“;。这个代码怎么了?,batch-file,if-statement,Batch File,If Statement,我想知道pasw和paswconfirm是否和上面写的3不一样 但我得到的是: Wachtwoord:test Type het wachtwoord overnieuw:xzcv 1 3 这是我的代码: :pasw cls :paswretry set /p pasw=Wachtwoord: set /p paswconfirm=Type het wachtwoord overnieuw: if "%pasw%" == "%paswconfirm%" ( echo Weet je he

我想知道pasw和paswconfirm是否和上面写的3不一样

但我得到的是:

Wachtwoord:test
Type het wachtwoord overnieuw:xzcv
1
3

这是我的代码:

:pasw
cls
:paswretry
set /p pasw=Wachtwoord:
set /p paswconfirm=Type het wachtwoord overnieuw:
if "%pasw%" == "%paswconfirm%" (
  echo Weet je het zeker? Het wachtwoord word: %pasw%
  CHOICE /c YN /n /m (Y/N)
  if "%errorlevel%" == "1" (
    echo 1
    )
  if "%errorlevel%" == "2" (
    echo 2
    )
) else (
  echo 3
  )

根据我的评论,您正在过早地用结束的
/N)
括号关闭打开的
If
括号

因此,您可以使用插入符号(
^)
对该括号进行转义:

:paswretry
设置/P“pasw=Wachtwoord:”
设置/P“paswconfirm=类型het wachtwoord overnieuw:”
如果“%pasw%”==%paswconfirm%(
回音:我是泽克?他是瓦赫特伍德语:%pasw%
选项/C YN/N/M(Y/N^)
如果“%ErrorLevel%”=1(
回声1
)否则(
回声2
)
)
或者,您可以在使用信息中双引号引用示例中所示的消息文本(在命令提示下输入
Choice/?
时输出):

:paswretry
设置/P“pasw=Wachtwoord:”
设置/P“paswconfirm=类型het wachtwoord overnieuw:”
如果“%pasw%”==%paswconfirm%(
回音:我是泽克?他是瓦赫特伍德语:%pasw%
选项/C YN/N/M“(是/否)”
如果“%ErrorLevel%”=1(
回声1
)否则(
回声2
)
)
但是,
选项
命令使用
[Y,N]?
自动工作,因此不需要其他选项

您应该使用以下选项之一:

:paswretry
设置/P“pasw=Wachtwoord:”
设置/P“paswconfirm=类型het wachtwoord overnieuw:”
如果“%pasw%”==%paswconfirm%(
回音:我是泽克?他是瓦赫特伍德语:%pasw%
选择
如果错误级别为2(
回声2
)否则(
回声1
)
)
这(更好):

:paswretry
设置/P“pasw=Wachtwoord:”
设置/P“paswconfirm=类型het wachtwoord overnieuw:”
如果不是“%pasw%”,则=“%PASWConfim%”转到paswretry
你知道我是谁吗?Het wachtwoord单词:%pasw%
选择
如果错误级别为2(
回声2
)否则(
回声1
)
或者这个(更好):

:paswretry
设置/P“pasw=Wachtwoord:”
设置/P“paswconfirm=类型het wachtwoord overnieuw:”
如果不是“%pasw%”,则=“%PASWConfim%”转到paswretry
你知道我是谁吗?Het wachtwoord单词:%pasw%
选择
回显%ErrorLevel%

在后两个例子中,我使用了在线
4
上的
GoTo paswretry
;当然,可以根据需要将其更改为
GoTo SomethingElse
,(甚至
:EOF
退出脚本块),除了在
choice/C YN/N/M(Y/N)
中关闭
时关闭
如果关闭
,则关闭括号==“%paswconfirm%”(
block,可以通过引用
choice/C YN/N/M“(Y/N)”
来避免,您需要
ErrorLevel
(因此
%ErrorLevel%
变成
!ErrorLevel!
)…我建议阅读上面的答案,以便更好地理解发布的解决方案和上面的注释。如果我的答案解决您的问题,请考虑将其标记为接受,点击大检查标记到其左侧。