我需要将下一个代码(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
总结以上是内存溢出为你收集整理的batch file中的其他条件全部内容,希望文章能够帮你解决batch file中的其他条件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)