if语句不工作批处理(直接转到else)

coo*_*lio 5 batch-file

我只是在处理我的批处理文件的密码;但是,我的if语句不起作用.当我要求它检查我的密码是否正确时,它会转到else语句,即使我正确输入密码(hi).这是我的代码中有问题的部分:

if "%R%"=="hi" (
goto b
) else (
echo access denied.
goto f
)
Run Code Online (Sandbox Code Playgroud)

这是整个代码:

echo off
color 0f
pause

:f
set /p R = "Please enter your passcode "

if "%R%"=="hi" (
goto b
) else (
echo access denied.
goto f
)

:a
for /L %%A IN (1,1,234) DO (
color 6e
echo          %random%%random%%random%%random%%random%%random%%random%
color 2a
echo %random%%random%%random%%random%%random%%random%%random%%random%
color 1b
echo %random%%random%%random%%random%%random%%random%%random%%random%
color 5d
echo %random%%random%%random%%random%%random%%random%%random%%random%
color 4c
echo %random%%random%%random%%random%%random%%random%%random%%random%
)
GOTO c

:b
echo Welcome Back
pause >nul
echo Your current computer does not contain previous files.
pause >nul
echo Download Backup Files now?
pause >nul
echo Downloading all Files...
goto a

:c
echo access granted. welcome to the CIA Mainframe.
pause >nul
echo Please se-se-select a c-command.
pause >nul
echo Alert! Alert! The main Fire wall has been Breached!
pause >nul
echo Files being deleted now...
pause >nul

:d
color 0c
echo %random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%
echo %random%%random%%random%%random%%random%%random%%random%%random%
goto d
Run Code Online (Sandbox Code Playgroud)

谁能请帮忙.

Wes*_*son 1

这是变量中存在空格的问题。

从命令行试试这个:

>set /p R = "Please enter your passcode: "
Please enter your passcode: blah

>echo %R%
%R%

>echo %R %
blah
Run Code Online (Sandbox Code Playgroud)

将您的行更改为:

set /p "R=Please enter your passcode: "
Run Code Online (Sandbox Code Playgroud)

这应该可以解决。