2015-06-26 203 views
1

我正在創建一個批處理遊戲,並且我有一個以前的遊戲,所以我可以記住代碼中的東西。批處理文件'if'「goto」「不工作

在遊戲中,我正在研究If和Goto命令在哪裏不起作用。所以我測試了我之前的遊戲,並且在這樣的事情上運行得很好。所以我創造了這個:

@echo off 
title test 
:1 
cls 
echo testing Testing 123 
echo Type Go 
set /p 123= 
if %123% == Go goto 2 
if %123% == go goto 2 
:3 
echo Gone wrong :(
pause 
exit 
:2 
cls 
echo Worked 
pause 
exit 

,當我鍵入Go它說Gone Wrong :(

誰能幫助我?

+0

嘗試'== 「轉到」'... –

+0

嗯,我試過了,但同樣的事情發生:( –

+0

'if'有一個'/ i'開關忽略capitalizaion。你還應該閱讀[this](http://stackoverflow.com/a/22946040/2152082)以避免語法錯誤。 – Stephan

回答

2

從未應該使用一個名稱,在數字開始的變量:

if %123% == Go goto 2 

在上一行%1通過批處理文件的第一個參數替換,所以真正的比較是:

if 23 == Go goto 2 
+0

謝謝!這真的幫了我:) –

0
@echo off 
title test 
:1 
cls 
echo testing Testing 123 
echo Type Go 
set /p _123= 
if %_123% == Go goto 2 
if %_123% == go goto 2 
:3 
echo Gone wrong :(
pause 
exit 
:2 
cls 
echo Worked 
pause 
exit 

%1被取爲第一個參數script.You也可以使用延遲擴展:

@echo off 
setlocal enableDelayedExpansion 
title test 
:1 
cls 
echo testing Testing 123 
echo Type Go 
set /p 123= 

if !123! == Go goto :2 
if !123! == go goto :2 
:3 
echo Gone wrong :(
pause 
exit 
:2 
cls 
echo Worked 
pause 
exit /b