微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

batch file中的其他条件

我需要将下一个代码(C语言)条件转换为batch file:

if(version == 1 || version == 2) { // do something } else { // do something other }

所以在batch file中,它将如下所示:

if "%version%"==1 ( // do something ) if "%version%"==2 ( // do something ) if not "%version%"==1 ( // do something other ) if not "%version%"==2 ( // do something other )

有没有更好的方法来写它?

Windows批处理命令:如何取消引用FOR循环variables来检查该variables是否设置在环境variables中

为什么在命令行上使用'set var = text'后没有输出string'echo%var%'?

使用命令提示符意外删除具有长扩展名的文件

如何查看windows环境variables而不执行其中的参数?

Windows批处理:在for循环中延迟扩展

批处理将reg查询命令的输出正则expression为一个variables

Windows批处理脚本在几次迭代后停止工作

RunOnce在重新启动时使用随机名称重命名Computername

尝试在Windows中启动Zookeeper时,“log4j.properties在这个时候是意外的”

跨子文件夹(recursion)运行批处理脚本

“没有逻辑和/或但你可以使用强大的转到。

if "%version%"=="1" goto :TRUE if "%version%"=="2" goto :TRUE REM do something else echo neither 1 or 2 :( goto :eof :TRUE REM do something echo 1 or 2 :)

setlocal EnableDelayedExpansion set wantedVersions=/1/2/ if "!wantedVersions:/%version%/=!" neq "%wantedVersions%" ( echo Version %version% is 1 or 2,do something ) else ( echo Version %version% is NOT 1 or 2,do something other )

这个表达式: "!wantedVersions:/%version%/=!" 意思是:“在wantedVersion中消除字符串”/%version%/“;这样如果版本是1或2,那么这个值将会被消除,结果将会与原来的不同=> version是1或2。需要避免版本= 12的错误识别。

是的,我知道这种方法看起来很复杂,但比其他选项更简单。 试着设想一下,如果你有3个不同的值,或者4个,那么其他选项应该是什么样的。另外,这个方法也可以嵌套在其他的IF / FOR命令中,而没有任何问题。

与@Aacini的回答相同的哲学的另一种方式

@ECHO OFF set /p $var=version ? : set "$version=[1] [2]" echo %$version% | find "[%$var%]" && echo do something || echo do something else

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐