DOS批处理如何检查指定前缀变量是否存在并抑制多余输出
解决方法
你只需要将SET命令产生的标准错误输出重定向到空设备nul即可抑制多余提示,修改后的写法如下:
SET FOO_ 2>nul && (echo FOO is set) || (echo FOO not set)
原理解释
- 原写法的多余输出来自
SET命令的错误提示:当没有匹配到FOO_开头的环境变量时,SET会向*标准错误流(句柄2)*输出找不到变量的提示信息 2>nul的作用就是把标准错误流的所有输出丢弃到系统空设备,不会在终端显示,也不会影响SET命令本身的返回值判断:匹配到变量返回0(执行&&后的分支),未匹配到返回非0(执行||后的分支)
内容的提问来源于stack exchange,提问作者Griffin
相关产品推荐
相关产品推荐

