Raj*_*yak 2 if-statement goto batch-file
我正在编写 bat 文件,其中 if 语句 goto 命令在第一个语句中不起作用
:purge_operation
set /p ABC_DEF=Are you want to Purge ABC or DEF Data ? (ABC/DEF):
:start
if %ABC_DEF%==ABC goto ABC
if %ABC_DEF%==DEF goto DEF
:end
:ABC
echo purge ABC data !
:DEF
echo purge DEF data !
pause >nul
Run Code Online (Sandbox Code Playgroud)
输出: - - - - - -
实际结果 - - - - -
Are you sure you want to Purge DATA ? (Y/N):Y
Are you want to Purge ABC or DEF Data ? (ABC/DEF):ABC
purge ABC data !
purge DEF data !
Run Code Online (Sandbox Code Playgroud)
预期成绩 - -
Are you sure you want to Purge DATA ? (Y/N):Y
Are you want to Purge ABC or DEF Data ? (ABC/DEF):ABC
purge ABC data !
Run Code Online (Sandbox Code Playgroud)
Goto 将执行点更改为标签。标签本身不会改变执行行为。换句话说,在批处理文件中的每个逻辑单元之后,您需要更改控制流,否则它将继续执行下一个语句。
例如,您可以修改示例批处理文件以仅执行所选结果之一,如下所示:
:purge_operation
set /p ABC_DEF=Are you want to Purge ABC or DEF Data ? (ABC/DEF):
:start
if %ABC_DEF%==ABC goto ABC
if %ABC_DEF%==DEF goto DEF
echo Unknown entry
goto :EOF
:ABC
echo purge ABC data !
goto :done
:DEF
echo purge DEF data !
goto :done
:done
pause >nul
Run Code Online (Sandbox Code Playgroud)
第二个goto :done完全没有必要,但这是一个好习惯,以防您将来添加更多分支可能性。
| 归档时间: |
|
| 查看次数: |
1919 次 |
| 最近记录: |