我想要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
)
答案 0 :(得分:1)
根据我的评论,您将过早地用If
括起来将括号/N)
括起来。
因此,您可以使用 ^)
插入符号来跳过该括号:
: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
) Else (
Echo 2
)
)
或者您可以在用法信息(在命令提示符下输入Choice /?
时输出)中将消息文本双引号,如示例所示:
: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
) Else (
Echo 2
)
)
但是Choice
命令可以使用[Y,N]?
自动运行,因此不需要其他选项。
您应该使用以下任一方法:
: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
If ErrorLevel 2 (
Echo 2
) Else (
Echo 1
)
)
这个,(更好):
:paswretry
Set /P "pasw=Wachtwoord: "
Set /P "paswconfirm=Type het wachtwoord overnieuw: "
If Not "%pasw%"=="%paswconfirm%" GoTo paswretry
Echo Weet je het zeker? Het wachtwoord word: %pasw%
Choice
If ErrorLevel 2 (
Echo 2
) Else (
Echo 1
)
或这个(甚至更好):
:paswretry
Set /P "pasw=Wachtwoord: "
Set /P "paswconfirm=Type het wachtwoord overnieuw: "
If Not "%pasw%"=="%paswconfirm%" GoTo paswretry
Echo Weet je het zeker? Het wachtwoord word: %pasw%
Choice
Echo %ErrorLevel%
在后两个示例中,我在行GoTo paswretry
上使用了4
;当然可以根据需要将其更改为GoTo SomethingElse
,(甚至:EOF
也可以退出脚本块)