2016-04-21 21 views
5

Sto semplicemente lavorando su una password per il mio file batch, ma la mia istruzione if non funziona. quando gli chiedo di verificare se la mia password è corretta, passa alla dichiarazione else, anche se inserisco correttamente la password (hi). qui è la parte del mio codice che presenta il problema:se la dichiarazione non funziona in batch (va direttamente in altro)

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

e qui è l'intero codice:

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 

Qualcuno può aiutare.

+2

Si sta impostando su R ad es. 'R'. Digitando 'Set' avresti potuto vedere questo. –

risposta

1

Questo è un problema con gli spazi nella variabile.

Prova questa da una riga di comando:

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

>echo %R% 
%R% 

>echo %R % 
blah 

cambiare linea per:

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

E che dovrebbe risolvere il problema.