IF声明不起作用。批处理文件

时间:2012-04-19 03:02:14

标签: if-statement batch-file

我是批处理文件的初学者。所以我正在制作一个基本的批处理文件,当我测试它时,它说The syntax of the command is incorrect.但我很确定它是正确的。我知道它是在我的编码的IF部分,因为我放了几个等待脚本(使用VBS)。我还没有使用REM,所以我不知道问题是什么。我写的是这样的。

@echo off

b:
set a=1

IF %a%==1 goto :a

:a

echo Test

pause

goto :b

我在编码中也有很多其他IF %variable%==number语句,它们都可以正常工作。发生了什么事?

3 个答案:

答案 0 :(得分:1)

首先,您的标签b的冒号位于错误的一侧,将其转换为试图将默认驱动器设置为第二张软盘的命令: - )

其次,虽然不是绝对必要,但我更喜欢标签:

    @echo off
:b
    set a=1
    IF %a%==1 goto :a
:a
    echo Test
    pause
    goto :b

运行此结果:

C:\Users\Pax\Documents> testprog
Test
Press any key to continue . . . <ENTER>
Test
Press any key to continue . . . <ENTER>
Test
Press any key to continue . . . <ENTER>
Test
Press any key to continue . . . <CTRL-C>
Terminate batch job (Y/N)? y

C:\Users\Pax\Documents> _

答案 1 :(得分:0)

IF %a%==1 goto :a

应该是

IF %a%==1 goto a

为了获得进一步的帮助,我在这里找到了解决方案:http://www.computerhope.com/batch.htm 它拥有您需要的所有信息。

答案 2 :(得分:0)

paxdiablo 一样说它可能没有必要,但它可以帮助给标签自己的行,并且可能有其他一些可能没有必要的东西,但可以帮助你一点点有组织的,从长远来看,它可以帮助你解决一个例子。

@echo off
:b
set a=1
IF %a%==1 goto a
:a
echo Test
pause
goto b

此外 IF %a%==1 goto a 可以更改为 IF %a% EQU 1 goto a 就像 goto 可以写成 goto :a {{1} } 。 可以使用 goto a 等添加标题。

快乐探索。