2011-03-08 69 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

相关问题