Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理文件一直说转到是意外的_Batch File - Fatal编程技术网

Batch file 批处理文件一直说转到是意外的

Batch file 批处理文件一直说转到是意外的,batch-file,Batch File,每当我使用它时,它都会说goto是意外的。为什么?我已经看过了这里的许多回答问题,似乎我无法正确回答。而且,无论我做了什么输入,不管它是否正确,它似乎都指向:不正确。请帮忙 @echo off :password set /p pw=Type password: if %pw%=="fdDg*3&d@%jdgf" goto begin if not %pw%=="fdDg*3&d@%jdgf" goto incorrect :incorrect echo Access denie

每当我使用它时,它都会说goto是意外的。为什么?我已经看过了这里的许多回答问题,似乎我无法正确回答。而且,无论我做了什么输入,不管它是否正确,它似乎都指向:不正确。请帮忙

@echo off
:password
set /p pw=Type password:
if %pw%=="fdDg*3&d@%jdgf" goto begin
if not %pw%=="fdDg*3&d@%jdgf" goto incorrect
:incorrect
echo Access denied.
goto password
:begin
echo Welcome!
pause
exit
你必须使用

@echo off
:password
set /p "pw=Type password: "
if "%pw%"=="fdDg*3&d@%%jdgf" goto begin
:incorrect
echo Access denied.
goto password
:begin
echo Welcome!
pause
exit
对于输入的密码与预定义密码的大小写敏感比较,需要使用双引号

百分比符号有一个特殊的含义,因为您可以在
%pw%
上使用它。因此,如前所述,百分比登录密码字符串必须用一个以上的百分比符号转义。而
if not
行实际上是不需要的


但是,密码验证代码仍然需要更多的代码来检查无效输入,请参见上的答案尝试以下操作:
如果“%pw%”==“fdDg*3&d@%jdgf”
如果使用
echo on
运行脚本,您会注意到,它不喜欢密码中的百分比符号。
if not…
行不需要。我已删除if not语句并更改了百分号。但是,它仍然将任何输入显示为不正确。我只需要弄清楚如何使它这样,如果一个值输入,它的工作。如果输入了其他值,则转到:不正确。