2011-03-08 64 views
5

鑑於這樣的查詢作爲如何將WMI查詢的所有行導出到文件?

SELECT * FROM WIN32_PROCESS 
  1. 有沒有一種方法來查詢返回的列的名稱結果對象?
  2. 寫在結果對象中的所有行到一個文本文件,說
+0

哪種語言編程嗎? – RRUZ 2011-03-08 07:52:04

+0

您使用哪種語言進行查詢?在VB或VC++上的WQL? – 2011-03-08 07:53:13

+0

我正在使用VBScript,但VB.NET或C#中的任何提示也將有所幫助。 – AAsk 2011-03-08 08:38:00

回答

8

有沒有一種方法來查詢返回的列的名稱結果對象?

是的。每個WMI對象都有提供有關該對象屬性的信息的Properties_集合。要獲取對象中可用屬性的名稱,請枚舉Properties_集合並檢查每個項目的Name

寫在結果對象中的所有行到一個文本文件,說

枚舉所有的行,並使用FileSystemObjectwrite them到所需的文本文件。僞代碼:

create a text file and open it for writing 

for each object in the result set 
    for each property in the object 
    write the property value to the file 

close the file 


或者,你可以使用wmic來爲你做所有的工作:您使用

wmic /output:e:\processes.txt process get /all 
wmic /output:e:\processes.csv process get /all /format:csv 
+0

謝謝海倫。使用你的僞代碼作爲基礎,我可以寫出列和值的名稱 - 命令行代碼(樣本)非常有用。 – AAsk 2011-03-09 16:15:42

+1

對於任何未來遇到此問題的人來說,輸出標誌位於別名之前。 wmic /output:c:\processes.csv進程獲取/所有/格式:csv和由excel不會自動讀取生成的csv,您必須指定它的分隔符才能正確顯示。 – 2014-01-08 21:22:12

+0

當我使用此命令(on Windows 7 64位)我得到「無效的XSL格式(或)文件名」。不過,Server 2003具有可用的CSV格式。是否有可能在Windows 7上獲得CSV? – 2014-02-07 16:32:01

相關問題