2
我做了这个只是作为一个实验出于兴趣,在一些快速阅读在线教程和SO问题。批处理文件的IF语句不起作用?
这是我创建的批处理文件。
@ECHO OFF
:input
SET /P typeofc="To Connect input Y and to Disconnect input N (Y/N): "
IF /I "%typeofc%"=="Y" goto yes
IF /I "%typeofc%"=="N" goto no
:yes
rasdial whatevernetwork
:no
rasdial whatevernetwork /DISCONNECT
然而,当我执行此,它运行在双方和yes
的no
命令,无论给出的条件。试过也在做IF <condition> <command> ELSE <command>
,但后来它只是在输入后退出,即使我在脚本的末尾添加了PAUSE
。
我在这做错了什么?
PS:我在Windows 7上执行这个32位
没有什么可以阻止后'RASDIAL whatevernetwork'执行,因此下一行会被执行(并且被忽略,因为它是一个标签),那么下一行'rasdial whatevernetwork/DISCONNECT'将被执行。要停止执行,您可以使用'goto:eof'或'exit'。你的'if ... goto'语句本身在我的电脑上执行的很好。 (用'Y'做,只用'N'做第二个' – Stephan
如果你的输入不是'Y'或'N',那么'ras'命令都会运行。 – Stephan
是的,你是绝对正确的。问题是我在执行标签后没有写任何东西,添加它们就解决了问题,再加上像你说的,除了'Y'和'N'之外的任何输入只是执行下面的所有内容,所以我添加了'IF'语句检查'N'到一个不同的标签,跳进去,如果'Y'的语句返回false,然后再次调用':input',如果语句返回false。另外我发现为什么我的ELSE不起作用原来,你必须把真正的部分命令放在括号内。感谢帮助队友。 – RocketRuwan