2012-04-19 135 views
2

我是批处理文件的初学者。所以我正在制作一个基本的批处理文件,当我测试它时,它说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语句,他们都做工精细。到底是怎么回事?

回答

0
IF %a%==1 goto :a 

应该

IF %a%==1 goto a 

如需进一步的帮助,这里就是我找到了解决办法:http://www.computerhope.com/batch.htm 它拥有你需要的所有信息。

+3

这是不正确的,'goto'与包含冒号的标签工作得很好。 – paxdiablo 2012-04-19 03:22:30

+0

谢谢!你给我看的链接是帮助很多! – 2012-04-19 06:29:15

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> _ 
+0

看起来像是一个标签问题。虽然我确实有另一个我有理论的问题。如果你使用没有设置任何变量的IF语句,它会不起作用吗?再次感谢。 – 2012-04-19 06:30:35

+0

解决了这个问题,我的理论是正确的。对不起,麻烦了。 :) – 2012-04-19 06:32:21

+0

变量设置为无效工作好吗。你只需要尝试'echo [%xyzz%]'来看看这个动作。如果未设置,则会得到未解释的[%xyzzy%]。如果它设置为1(例如),你会得到'[1]'。无论如何,你的变量_was_在给定的代码中设置。 – paxdiablo 2012-04-19 06:41:16

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 :agoto a。 标题可以Title title of window等加入...

快乐探索。