2013-07-27 7 views
5

Der Versuch, ein Quiz show.bat Datei und Probleme mit der If-Set-Codierung zu machen:Set Befehle nach einem If Befehl

:10  
echo @: (Press any key to continue) 
pause >nul 
cls 
echo Bonus Question 1: 
echo Translate the letters in CAPS. 
echo @: Copy the sentence and translate the words in CAPITALS. 
echo Il nome di mia ZIA e Gabriella e il nome di mio ZIO e Nick. 
echo @: Careful, you only get 3 goes! 
echo @: now you try! 
set /p BonusAnswer1=">" 
set /p BonusAnswer1=">" 
if "%BonusAnswer1%"=="Il nome di mia aunty Gabriella e il nome di mio uncle Nick. echo well done! &goto:11 
if "%BonusAnswer1%"=="Hint" echo @: Copy the sentence and translate ZIA and ZIO. Only put a capital for Il, Gabriella and Nick. &goto:10 

hier ist, wo ich das Problem haben:

if "%Bonus1Tries%"=="3" set Bonus1Tries=2 &echo you only have %Bonus1Tries% left! 

der einzige Teil dieser Codierung, die nicht funktioniert ist es sagt:

you only have 3 tries left! 

statt

you only have 2 tries left! 

was bedeutet, dass

set Bonus1Tries = 2

nicht funktioniert. Können Sie bitte helfen und danken Ihnen im Voraus! -batch Man

Antwort

3

innerhalb eines Codeblocks Sie delayed expansion erklärt aktivieren müssen, oder Sie teilen den Befehl (wenn möglich):

if "%Bonus1Tries%"=="3" set "Bonus1Tries=2" 
if "%Bonus1Tries%"=="2" echo you only have %Bonus1Tries% left! 
+0

danke nochmal, das hat wirklich geholfen! –

0

Sie haben

SETLOCAL ENABLEDELAYEDEXPANSION 
set VAR=before 
set VAR=after & echo immediate:%VAR%, delayed:!VAR! 
ENDLOCAL 

verzögerten Expansion Wie Raymond Chen

Verwandte Themen