2013-01-10 73 views

回答

2

首先,您需要獲取正確的WMIC命令,然後才能使其在FOR命令中工作。

你正在尋找的基本WMIC命令是:

wmic service where "displayName like '%%sqlserver2008%%'" get name 

現在還有用FOR/F幾併發症。 WMIC輸出是unicode,它與FOR/F有一個奇怪的交互 - FORY/F解析的每行都包含最後一個額外的回車。不需要的回車包含在每個FOR/F迭代中。 Yuck :(

一個有效的解決方案是請求CSV格式,至少有一個額外的不需要的列在你感興趣的列之外。然後你可以設置DELIMS和TOKENS來獲得所需的列。 ,國家列名之後出現,所以它是一個不錯的人選。

WMIC/CSV格式包括在前面一個額外的節點列。

WMIC/CSV格式包括一個空行和一個標題行的可以通過使用SKIP = 2跳過的頂端

這裏是一個功能完善的FOR/F解決方案

for /f "skip=2 tokens=2 delims=," %%A in (
    'wmic service where "displayName like '%%sqlserver2008%%'" get name^,state /format:csv' 
) do echo %%A 
相關問題