我在批量游戏中设置了一些东西。当确定输入一个选项并点击“Enter”时,它会转到下一个以:(我不知道它叫什么)的东西而不是它应该去的地方。
当用户键入“Y”时,而不是“Youtube”。
:visitoption
echo Would you like to visit the RST Garry's mod gaming community website?
set /p option=Y or N:
if %option%==Y start chrome (Censored link)
if %option%==N cls goto :youtube
if %option%==y start chrome (Censored link)
if %option%==n cls goto :youtube
:version
cls
@echo off
echo.
echo[
@echo off
echo.
echo[
echo --Version--
echo Lightup Demo
@echo off
echo.
echo[
@echo off
echo.
echo[
@echo off
echo.
echo[
pause
goto :versionwhite
:youtube
echo Would you like to visit the Creator's Youtube channel?
echo Gameplay commentarys and such.
set /p option=Y or N:
if %option%==Y start chrome (Censored link)
if %option%==N goto :Beginning
if %option%==y start chrome (Censored link)
if %option%==n goto :Beginning
答案 0 :(得分:0)
基本上你在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
答案 1 :(得分:0)
“事物”被称为label
由于您无法控制用户输入的内容,因此您应该使用
if "%option%"=="Y" start chrome (Censored link)
即,引用比较的两面(这不是防弹,但在用户不是故意试图打破你的系统的情况下充分服务。)
将/i
开关添加到if
会使比较不区分大小写。
if defined option set "option=%option:~0,1%"
会将option
设置为第一个字符。
请注意,如果用户只回复 Enter ,则变量的值保持不变。你可以利用这个特点
set "option=defaultvalue"
set /p option=Y or N:
如果用户只回复 Enter ,会将选项设置为defaultvalue
。
start
将独立启动流程。批次只是继续下一个声明。您可能正在使用start "window title for this instance" ...
- 这是start
的一个怪癖,第一个"quoted parameter"
被用作窗口标题,您可能希望将其用作参数。
要在一行中连接一系列命令,您需要使用&符号&
分隔各个命令关闭echo
一次后,您不需要再次执行此操作(除非您执行echo on
,您可以在调试期间执行此操作以显示程序流程。)领先 @ 表示don't echo this command
- 如果没有它,则会复制初始ECHO OFF
。
您可以使用call :label
执行从此批处理文件中的:label
开始的子程序。如果使用call label
,则执行的“子例程”是可执行文件label
。这是一个非常重要的区别。
出于这个原因,我避免使用goto :label
- 尽管它有效 - 因为冒号不是必需的,并且goto
和call
命令之间是一致的。
这种省略冒号方法的一个例外是冒号实际确实有效 - goto : 非常具体表示'转到此批处理文件的物理结尾' - :eof
理解标签cmd
具有该含义,不应在批处理中定义。
答案 2 :(得分:-1)
您已将其设置为当用户按下n
时将其设置为youtube,而不是当用户输入y
时,就像您说的那样尝试问题:
if %option%==N cls goto :youtube
请在发布问题之前尝试查看鳕鱼的使用情况。
SO拥有世界上最简单的CodeSlabing系统之一。血液难以按空间4次或突出显示并按下"Code Sample"
按钮?
莫纳。