Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理脚本:命令未使用If语句运行_Windows_Batch File_Scripting_Cmd - Fatal编程技术网

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

Windows 批处理脚本:命令未使用If语句运行,windows,batch-file,scripting,cmd,Windows,Batch File,Scripting,Cmd,因此,对于初学者来说,我是一个有点磨砂的程序员,我喜欢玩批处理脚本。 我不喜欢打开多个命令行窗口,所以我尝试将所有内容都编写到这个1批处理文件中,包括运行标准命令行命令的能力 这是我的代码中有问题的部分 :three echo. echo *************************** echo **Enhanced Command Prompt** echo *************************** :three.b

因此,对于初学者来说,我是一个有点磨砂的程序员,我喜欢玩批处理脚本。 我不喜欢打开多个命令行窗口,所以我尝试将所有内容都编写到这个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”和其他命令在不破坏批处理文件的情况下不起作用

任何帮助都将不胜感激


谢谢

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

:三个
回响
回音***************************
echo**增强的命令提示符**
回音***************************
:三
回响
set/p Return=Enter命令:
如果“%Return%”==“Return”转到主页
cmd/c%收益率%
转到三点

您的问题在于空格。如果将
命令中的单引号替换为双引号(在批处理文件中引用字符串的正确方式),请使用
中的单引号测试代码。这非常有效。我不明白为什么1个小IF语句会给我带来这么多问题,我还有其他IF语句工作得很好。由于批处理脚本非常宽容,我从在线教程中获得了使用单引号的想法。再次谢谢你,非常感谢@用户3821353报告该教程;是否有可能接受并投票表决我的答案或留下反馈?