批处理脚本:命令未使用If语句运行

时间:2014-09-26 20:06:59

标签: windows batch-file scripting cmd

首先,对于初学者来说,我是一名磨砂编码器,我喜欢玩批处理脚本。 我不想打开多个命令行窗口,所以我试图将所有内容编写到这个1批处理文件中,包括运行标准命令行命令的能力。

这是我的代码部分,我遇到了问题。

    :three
    echo.
    echo ***************************
    echo **Enhanced Command Prompt**
    echo ***************************
    :three.b
    echo.
    set /p Return=Enter Command: 
    if '%Return%'=='Return' goto home
    cmd /c %Return%
    goto three.b

注意:我也删除了cmd / c,%Return%excutes没有问题,但为了个人喜好,我保留了cmd / c。

这一行文字的问题是执行一个命令,例如" Ping Google.com"撞坏了窗户。 ipconfig / all也是如此,其他任何似乎都没有立即执行。 如果我删除" IF = Return",那么我在运行ping google.com或其他任何内容时都没有问题,但是我最终没有IF语句而被困在这部分代码中。 IF语句本身起作用,但是" Ping X"和其他命令不会崩溃批处理文件。

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

您将需要在if中使用双引号,因为这是引用/比较批处理文件中字符串的正确方法。

:three
echo.
echo ***************************
echo **Enhanced Command Prompt**
echo ***************************

:three.b
echo.
set /p Return=Enter Command: 
if "%Return%" == "Return" goto home
cmd /c %Return%
goto three.b