如何在WMIC批处理脚本中抑制No Instances Available报错提示
你需要将2>nul参数放在FOR /F所执行的wmic命令的尾部,也就是单引号包裹的命令内部,注意重定向符号>需要加^转义,避免被外层批处理解析。
修改后的完整脚本如下:
setlocal enableDelayedExpansion FOR /F "tokens=2 delims==" %%I IN ( 'wmic product where "name='Application Name'" get version /format:list 2^>nul' ) DO FOR /F "delims=" %%A IN ("%%I") DO SET "appver=%%A"
补充说明:
- wmic查询不到匹配产品时输出的
No Instance(s) Available.属于标准错误流(对应句柄2)内容,2>nul的作用就是直接丢弃该命令的所有错误输出,不会显示在控制台,也不会干扰后续的变量赋值逻辑。 - 如果你需要把错误输出合并到标准输出流供后续处理,可以替换成
2^>&1,当前场景直接用2^>nul即可。
内容的提问来源于stack exchange,提问作者Dan W
相关产品推荐
相关产品推荐

