2016-09-27 684 views
0

我想查找在特定工作站上運行的Outlook版本。如果我手動運行WMIC產品其中「名稱像...」 - 「無實例可用」(如果在批處理文件中運行)

wmic /node:"hostname" product where "Name like '%Office Outlook%'" get Name 

在命令行中,它的工作原理。但是如果我從一個批處理文件運行它,它會返回「沒有可用的實例」。我甚至將批處理文件中的所有內容都剝離了,所以只留下這一行 - 我仍然得到相同的結果。我錯過了什麼嗎?

回答

2

在批處理腳本文件:

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?(整個線程)爲好。

+0

'%% Office Outlook %%'工作!非常感謝! – user2132386