批处理文件' if" "转到" "不工作

时间:2015-06-26 15:30:11

标签: batch-file if-statement command echo 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 :(

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:2)

从不应该使用名称以数字开头的变量:

if %123% == Go goto 2

在前一行%1被批处理文件的第一个参数替换,因此真正的比较是:

if 23 == Go goto 2

答案 1 :(得分: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用于脚本的第一个参数。您还可以使用延迟扩展:

@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