Windows 批处理脚本:命令未使用If语句运行
因此,对于初学者来说,我是一个有点磨砂的程序员,我喜欢玩批处理脚本。 我不喜欢打开多个命令行窗口,所以我尝试将所有内容都编写到这个1批处理文件中,包括运行标准命令行命令的能力 这是我的代码中有问题的部分Windows 批处理脚本:命令未使用If语句运行,windows,batch-file,scripting,cmd,Windows,Batch File,Scripting,Cmd,因此,对于初学者来说,我是一个有点磨砂的程序员,我喜欢玩批处理脚本。 我不喜欢打开多个命令行窗口,所以我尝试将所有内容都编写到这个1批处理文件中,包括运行标准命令行命令的能力 这是我的代码中有问题的部分 :three echo. echo *************************** echo **Enhanced Command Prompt** echo *************************** :three.b
: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报告该教程;是否有可能接受并投票表决我的答案或留下反馈?