if语句无法正常工作(直接转到else) [英] if statement not working batch (goes directly to else)

查看:62
本文介绍了if语句无法正常工作(直接转到else)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm simply working on a password for my batch file;but, my if statement is not working. when I ask it to check whether my password is correct, it goes to the else statement, even if i correctly enter the password (hi). here is the part of my code that has the problem:

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

这是完整的代码:

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

任何人都可以帮忙.

推荐答案

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

This is a problem with spaces in your variable.

从命令行尝试:

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

>echo %R%
%R%

>echo %R %
blah

将行更改为:

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

那应该可以解决.

这篇关于if语句无法正常工作(直接转到else)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆