Batch file 转到批处理中无法正常工作?
我在批量游戏中设置了一些东西。当确定输入一个选项并点击“回车”时,它将转到以a开头的下一个选项:(我不知道它叫什么) 当用户输入“Y”时,它不会转到“Youtube”Batch file 转到批处理中无法正常工作?,batch-file,Batch File,我在批量游戏中设置了一些东西。当确定输入一个选项并点击“回车”时,它将转到以a开头的下一个选项:(我不知道它叫什么) 当用户输入“Y”时,它不会转到“Youtube” 您将其设置为,当用户按下n时,它会进入youtube,而不是当用户输入y时,就像您在问题中所说的: if %option%==N cls goto :youtube 在你发布问题之前,请先看看你使用的代码在做什么 世界上最简单的代码清除系统之一也是如此。按空格键4次或突出显示并按下“代码示例”按钮有多困难 Mona.基本上,您在
您将其设置为,当用户按下
n
时,它会进入youtube,而不是当用户输入y
时,就像您在问题中所说的:
if %option%==N cls goto :youtube
在你发布问题之前,请先看看你使用的代码在做什么
世界上最简单的代码清除系统之一也是如此。按空格键4次或突出显示并按下“代码示例”
按钮有多困难
Mona.基本上,您在CLS之后缺少了一个命令分隔符,但我做了一些其他更改,例如
/I
不区分大小写比较,并使检查例程对空格或无输入更为健壮
:visitoption
echo Would you like to visit the RST Garry's mod gaming community website?
set /p option=Y or N:
if /i "%option%"=="Y" start "" chrome "(Censored link)"
if /i "%option%"=="N" cls & goto :youtube
goto :visitoption
“东西”称为标签
由于您无法控制用户类型,因此应该使用
if "%option%"=="Y" start chrome (Censored link)
也就是说,引用比较的两个方面(这不是防弹的,但在用户没有故意破坏您的系统的情况下可以充分发挥作用)
将/i
开关添加到if
将使比较不区分大小写
if defined option set "option=%option:~0,1%"
将选项设置为仅第一个字符
请注意,如果用户只需输入回复,那么变量的值将保持不变。你可以利用这一特点为自己谋利
set "option=defaultvalue"
set /p option=Y or N:
如果用户只需输入即可回复,则将选项设置为defaultvalue
start
将独立启动流程。批处理只是继续执行下一条语句。对于此实例,您可能更倾向于使用start“窗口标题”…
-第一个引用参数“
被用作窗口标题,而您可能希望它被用作参数,这是start
的一个怪癖
要在一行中串联一系列命令,需要使用符号AND分隔各个命令&
关闭echo
一次后,无需再次执行此操作(除非执行echo on
,您可以在调试过程中执行此操作以显示程序流。)前导@表示不回显此命令
-如果没有它,初始的echo off
您可以使用call:label
执行此批处理文件中从:label
开始的子例程。如果使用调用标签
,则执行的“子例程”是可执行的标签
。这是一个非常重要的区别
出于这个原因,我避免使用goto:label
,尽管它是有效的,因为冒号是不必要的,并且用于goto
和call
命令之间的一致性
省略冒号方法的一个例外是冒号实际上有影响-goto:eof非常明确地表示“转到该批处理文件的物理端”-标签:eof
被cmd
理解为具有该含义,不应在批处理中定义
set "option=defaultvalue"
set /p option=Y or N: