我能用Windows PowerShell做什么:过滤返回的数据

翻译 2007年09月14日 23:46:00

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。

By:Anders      Mail:katrina520@163.com       

过滤返回的数据

Where-Object cmdlet提供了一种方法,用其他cmdlets为你过滤数据。举例来说,默认情况下Get-Process cmdlet一般会返回有运行在你计算机上所有的进程信息。不过,假设你只对那些进程使用超过200个句柄的进程有兴趣。 (我们不知道为什么,你对它们有兴趣,但… … )。使用Ger-Process只有得到子进程,那么由Where-Obejct完全输送结果:
Get-Process | Where-Object {$_.handles -gt 200}

仔细注意这个语法。首先, where子句是密封在括号里的;此外,$_.notation是用来来代表默认对象(也就是说,对象被开始被转到各管道线)。最后,但肯定不是最小,注意比较运算符来指明大小:如 -gt 大于 “>”。

Windows PowerShell不使用标准算术的比较运算符;相反,它使用诸如这些操作符:

-lt -- 小于

-le -- 小于或等于

-gt -- 大于

-ge -- 大于或等于

-eq -- 等于

-ne -- 不等于

-like类似(用于文本的通配符比较)

换言之,如果我们正在寻找的进程句柄均大于或等于200,那么我们使用这个命令:
Get-Process | Where-Object {$_.handles –ge 200}

您也可以使用 -and 和 - or参数,以创造更多的有限目标数据库。举例来说,假设你想返回所有实例的svchost使用超过200多句柄的进程。你必须要做的是使用 -and 标准的分开这两者分句:

Get-Process | Where-Object {$_.handles -gt 200 -and $_.name -eq "svchost"}

同样,假设你想列出所有使用超过200以上的句柄数的svhost进程(换言之,所有使用超过200以上的句柄数的svhost进程,不管有多少)。在这种情况下,使用 -or 参数加入在两个部分之中:

Get-Process | Where-Object {$_.handles -gt 200 -or $_.name -eq "svchost"}

这里的另一个例子;这个(使用Get-ChildItem cmdlet )只显示,C:/Scripts文件夹中大于100000字节的文件:

Get-ChildItem c:/scripts | Where-Object {$_.length -gt 100000}

并且我们不要忘记 - like操作符。这个命令返回所有包含在C:/Scripts里的文件,其中包括文件名为test的字符。注意利用两个星号作为通配符字符:

Get-ChildItem c:scripts | Where-Object {$_.name -like "*test*"}

你可以熟练的取回这个数据类型:

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          5/6/2006  10:24 PM      34198 test.csv
-a---         5/19/2006   9:11 AM       5918 test.htm
-a---         5/19/2006   8:16 AM      34226 test.log
-a---         5/19/2006   1:20 PM         65 test.ps1
-a---         5/20/2006   9:52 AM        150 test.psc1
-a---         5/20/2006   9:52 AM        150 test.psc1e.psc1
-a---         5/19/2006   1:27 PM        565 test.txt
-a---         4/17/2006   6:41 PM      24064 test.txt.doc
-a---         5/19/2006   1:45 PM       1971 test.vbs
-a---         5/17/2006   1:41 PM       9248 test.xls
-a---         5/19/2006   1:20 PM     628234 Test.xml
-a---          4/6/2006  10:26 PM        205 test_NODUPL.txt

 

 

 

英文原文:http://www.microsoft.com/technet/scriptcenter/topics/msh/cmdlets/where-object.mspx

相关文章推荐

详细设计之(人机界面设计问题)

人机界面设计中遇到的问题:系统响应时间;用户帮助设施;出错信息处理;命令交互。往往设计人员直到设计后期才开始考虑这些问题,导致出现不必要的设计反复、项目延期和用户产生挫折感。所以最好是设计初期就把这些...

中文字符编码:GB2312、GBK、ANSI、Unicode、UTF-8

字符编码windows notepad、windows notepad++和sublime text的字符编码显示区别: windows notepad notepad++ sublime...

ASM AAM能用来做什么

下面的内容来至Tim Cootes网站。来看一下ASM/ASM能做什么工作。 blog:http://blog.csdn.net/raby_gyl/article/details/1...

搜索中客户的访问日志到底能用来做什么(3)?

为什么搜索的第一页比后面的好? 首先,我们主观上的能动性是很底的,意思是我们一般手不想往下页找,希望结果中最好前几条就是期望找的结果 其次,每个用户都是这种心理,不像开始的搜索引擎,看谁找...

8大核心要点:我们能用HTML5 Canvas做什么?

摘要:HTML5的Canvas元素称得上HTML5的核心技术所在。而作为一个依靠JavaScript绘制华丽图像的元素,Canvas究竟能够运用在哪些方面的开发?国外开发者Ohad Eder-Pres...

Windows 7(win7) 能用的ntsd.exe,超强结束进程

来源:http://www.felix021.com/blog/read.php?1983 通过AVG杀毒,不放心的话就跳过吧。 NTSD的功能非常的强大,用它强行结束某个比较...

Python数据处理中能用到的小知识点

说明:写这个博客是本人在做毕设时发现有时候处理书籍会用到一些网上的教程中没有且很有用的小知识。而且有些在找的时候会比较麻烦,所以打算记录下来以备不时之需,另外以下的所有代码的Python版本为3.5,...

JQMobile(Jquery一样能用)中如何获得远程的json数据并绑定

获得的步骤,主要和jquery类似, 1.首先使用$.ajax的方法发送参数, 2.传回json数据后,将数据与模板一一mapping 3.最后将返回的数据与dom绑定即可 代码如下:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我能用Windows PowerShell做什么:过滤返回的数据
举报原因:
原因补充:

(最多只允许输入30个字)