用户使用cmdlet命令同时结合变量来过滤输出项……
过滤带有变量的内容
既然已经知道大概如何使用了,那么下面就再两塞选一个命令的结果。正如我们开始的时候讲的那样,我们想要一个get-wmi-list。当输入这个字样的时候,就出现了许许多多的结果,多得让你难以应付。如果想便于处理,我们将WMI作为搜索对象,然后把它保存成一个变量。
Powershell里的变量都是以dollar($)符号开头的。把一个变量赋值给另外一个变量(我们从简单的赋值开始做起)的做法,就是让其中一个等于另外一个就可以了,如下:
$myvariable = 123 或者
$myvariable = "Now is the time for all good men" 或者
$myvariable = get-date (是使变量myvariable是值是当前的日期),欲查看变量的内容,只要在命令提示行输入它的名字就可以了。
可能你就会想到,我们可以把get-wmi-list所得到的那个恼人的大结果赋值给一个变量。象这样:
$wmi = Get-Wmiobject –list
那好,现在我们已经把长列表放入一个变量里去了,那么再用select-string进行删节。象这样:
$wmi | select-string -pattern "Win32_"
这行命令就将返回所有在WMI帮助课程里的带“Win32_”字样的字符串。这将会在windows里缩减许多课程帮助的范围。但是,剩下的还是一个很长的列。怎么能让这个列再缩减一些呢?也许我们想得到的结果是还带有“network”字样的。和刚才所做的一样,再把结果赋值给一个变量。这次,我们的新变量$w32wmi所包含的内容就是我们所要的真正的结果了。既然我们已经得到所需的结果了,那么在这个基础上再做一个新研究:
$w32wmi | select-string -pattern "Network"
敲入这行命令后,我们就得到了一些很易于管理的结果了,如下:
VISIONTHINGROOTcimv2:Win32_TSNetworkAdapterSettingError
VISIONTHINGROOTcimv2:Win32_NetworkClient
VISIONTHINGROOTcimv2:Win32_NetworkProtocol
VISIONTHINGROOTcimv2:Win32_NetworkAdapter
VISIONTHINGROOTcimv2:Win32_NetworkConnection
VISIONTHINGROOTcimv2:Win32_PerfRawData_Tcpip_NetworkInterface
VISIONTHINGROOTcimv2:Win32_PerfFormattedData_Tcpip_NetworkInterface
VISIONTHINGROOTcimv2:Win32_SystemNetworkConnections
VISIONTHINGROOTcimv2:Win32_TSNetworkAdapterSetting
VISIONTHINGROOTcimv2:Win32_TSNetworkAdapterListSetting
VISIONTHINGROOTcimv2:Win32_NetworkLoginProfile
VISIONTHINGROOTcimv2:Win32_NetworkAdapterConfiguration
VISIONTHINGROOTcimv2:Win32_NetworkAdapterSetting
做完了这个,我能轻松的找出我所要的那个帮助教程来完成我的工作了。(如果不那么确定的话,我还是得一个一个仔细的看,但如果我从拼写形式就能看出哪个是我想要的,那么可以说这个做法起到了最大的作用了。)如果还想扩大我的搜索,在Select-String后再加一个参数,如下:
$w32wmi | select-string -pattern "Network", "Disk"
添加的第二个参数,它与第一个参数之间的关系其实是布尔变量中的“OR”的关系,而不是“AND”的关系。这样添加完以后,所返回的结果要么是带“Network”字样的,要么就是带“Disk”字样的,而不是两者都包括的结果才返回。
总而言之,这篇短文介绍了powershell使用的另外一个重要的功能----在大量结果中找到你所需要的最精确的信息。用Select-String过滤信息其实很简单。把繁杂的数据抛给过滤器,不管它是一个字符串,还是一个文档或者是一个命令输出,然后用管道线连接。使用WMI时,如果你不知道所需要的那个确切的帮助课程名称,用这个方法就可以使你的使用非常简便,也能使您能轻松的找到所要的带有详细信息的文档或者文件。
TechTarget独家授权!严禁转载!!!
原文链接:http://searchwincomputing.techtarget.com/generic/0,295582,sid68_gci1254209,00.html