作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写 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
输出:------------
实际结果------------
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 !
预期结果----
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 !
最佳答案
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
第二个 goto :done
完全没有必要,但养成它是一个好习惯,以防将来添加更多分支可能性。
关于batch-file - 如何在bat文件中使用goto函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57843451/
我是一名优秀的程序员,十分优秀!