If statement 导致CMD关闭且不工作的批处理文件If语句

If statement 导致CMD关闭且不工作的批处理文件If语句,if-statement,batch-file,If Statement,Batch File,我正在创建一个简单的批处理文件,该文件允许我输入一个类名,它将带我到正确的谷歌教室。然而,即使我输入“社会研究”这个词,我的if语句也不起作用。它不带我去教室,除此之外,CMD刚刚关闭。当我删除If语句行时,代码工作正常,cmd在输入类后保持打开状态 set /p class="Enter Class: " IF "%class%" /I EQU "Social Studies" (START https://clas

我正在创建一个简单的批处理文件,该文件允许我输入一个类名,它将带我到正确的谷歌教室。然而,即使我输入“社会研究”这个词,我的if语句也不起作用。它不带我去教室,除此之外,CMD刚刚关闭。当我删除If语句行时,代码工作正常,cmd在输入类后保持打开状态

    set /p class="Enter Class: "

    IF "%class%" /I EQU "Social Studies" (START https://classroom.google.com) 
    
    cmd /k

您可以注销@echo,以防止显示批处理文件的提示和内容。 我用==替换了您的EQ,现在它可以工作了:

@echo off
set /p class="Enter Class: "

IF "%class%"=="Social Studies" (START https://classroom.google.com)
PAUSE
最后的
暂停
将使CMD在完成后保持打开状态

IF /I "%class%" EQU "Social Studies"...
if
语句的解析逻辑非常具体<代码>如果[/i][NOT]arg1 op arg2,其中
/i
NOT
是可选的,但是如果使用,则必须按照该顺序使用

您的代码将看到
/i
,其中需要一个比较运算符并生成语法错误


当您使用执行批处理的点击和咯咯笑方法时,如果发现语法错误,批处理窗口通常会关闭。您应该改为从那里运行批处理,以便窗口保持打开状态,并显示任何错误消息。

如果打开命令提示窗口,请键入
If/?
,然后按
[ENTER]
键,您将学会如何正确使用命令。另外,在比较字符串时,应该使用
==
而不是
eq
。我还想知道为什么在最后调用一个新的、基本上是空的命令提示符。另外,请注意,
Set/P
在使用之前需要对输入进行一些特定的验证,您的最终用户不能被信任只输入预期的内容,无论是意外还是其他。我想知道您是从哪里找到
IF
命令的使用示例的。我刚才解决了这个问题,我忘记了我是如何做到的。cmd/k只是为了在完成后不会关闭。为什么要删除
/I
选项?