我需要 "If not defined (item) goto (item)" 代码的批量帮助
I need help in batch with the "If not defined (item) goto (item)" code
我正在用批处理创建命令提示符的模仿,每次我在批处理文件中输入一个未知的命令,比如 "JABSD" 它只是关闭,即使我已经把
if not defined (item) goto (item)
命令。这是代码:
@echo off
color 0a
echo Microbach Bachdos [version 9.9.bachcmd0a2pro]
echo Copybach (C) 1700 Microbach Corporbachtion. All Bachs reserved.
:commandbach
echo .
set "bachcmd="
set /p "bachcmd= C:\Bachusers\BACH)"
if not defined bachcmd goto invalidbcommand
REM error corrections
if /i "%bachcmd%"==" " (
:invalidbcommand
echo '%bachcmd% is not recognized as an internal or external command, operable program or .bach file.
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH" (
echo Please use a valid number
echo ACTBACH symphony_number
)
REM commands
if /i "%bachcmd%"=="help" (
echo HELP Displays a list of Bach commands.
echo ACTBACH symphony_number Plays the symphony number.
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH 1" (
start https://www.youtube.com/watch?v=x7JZB-lC_Hw
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH 2" (
REM start (insert URL)
echo Cannot find the symphony number
goto commandbach
)
pause
IF NOT DEFINED
只检查变量的定义。在你的情况下,它永远是真的,因为有人输入了一个值。
要完成您想要的,您需要将此行放在脚本的底部:
GOTO commandbach
这实际上会创建一个无限循环(直到用户关闭 window 或按 Ctrl+C)。您可能需要考虑添加一个 "exit" 命令,以便用户可以输入一个命令来退出您的程序。
我正在用批处理创建命令提示符的模仿,每次我在批处理文件中输入一个未知的命令,比如 "JABSD" 它只是关闭,即使我已经把
if not defined (item) goto (item)
命令。这是代码:
@echo off
color 0a
echo Microbach Bachdos [version 9.9.bachcmd0a2pro]
echo Copybach (C) 1700 Microbach Corporbachtion. All Bachs reserved.
:commandbach
echo .
set "bachcmd="
set /p "bachcmd= C:\Bachusers\BACH)"
if not defined bachcmd goto invalidbcommand
REM error corrections
if /i "%bachcmd%"==" " (
:invalidbcommand
echo '%bachcmd% is not recognized as an internal or external command, operable program or .bach file.
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH" (
echo Please use a valid number
echo ACTBACH symphony_number
)
REM commands
if /i "%bachcmd%"=="help" (
echo HELP Displays a list of Bach commands.
echo ACTBACH symphony_number Plays the symphony number.
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH 1" (
start https://www.youtube.com/watch?v=x7JZB-lC_Hw
goto commandbach
)
if /i "%bachcmd%"=="ACTBACH 2" (
REM start (insert URL)
echo Cannot find the symphony number
goto commandbach
)
pause
IF NOT DEFINED
只检查变量的定义。在你的情况下,它永远是真的,因为有人输入了一个值。
要完成您想要的,您需要将此行放在脚本的底部:
GOTO commandbach
这实际上会创建一个无限循环(直到用户关闭 window 或按 Ctrl+C)。您可能需要考虑添加一个 "exit" 命令,以便用户可以输入一个命令来退出您的程序。