我想查找特定工作站上运行的Outlook版本。如果我手动运行
wmic /node:"hostname" product where "Name like '%Office Outlook%'" get Name
在命令行中,它可以工作。但是如果我从批处理文件中运行它,它将返回"没有可用的实例"。我甚至从批处理文件中删除了其他所有内容,所以只留下这一行 - 我仍然得到相同的结果。我错过了什么吗?
答案 0 :(得分:7)
在批处理脚本文件中:
wmic /node:"hostname" product where "Name like '%%Office Outlook%%'" get Name
要获得证明,请在批处理文件中尝试下一步:
echo ON
wmic /node:"hostname" product where "Name like '%%Office Outlook%%'" get Name
pause
您应该看到下一个ECHO
ed命令,与从命令提示符输入的命令相同:
wmic /node:"hostname" product where "Name like '%Office Outlook%'" get Name
:::::::::::::::::::::::::::::
::: some wmic output here :::
:::::::::::::::::::::::::::::
Press any key to continue . . .
有关解释,请阅读Syntax : Escape Characters, Delimiters and Quotes
逃避百分比
%字符对命令行参数有特殊含义 FOR参数。
要将批处理脚本文件中的百分比视为 常规字符,加倍:%%
同时阅读How does the Windows Command Interpreter (CMD.EXE) parse scripts?(整个主题)。