我能用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

powershell 过滤输出

-sr 向右位移 -sl 向左位移 -ceq 相等 (必须都是小写) -clt 小于 (必须都...
  • ccyyss
  • ccyyss
  • 2012年05月07日 11:22
  • 821

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

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com       过滤返回的数据Where-Objec...
  • itanders
  • itanders
  • 2007年09月14日 23:46
  • 2071

Windows PowerShell 2.0语言之函数和过滤器

本文讨论了PowerShell提供的业务控制机制函数和过滤器,函数是用来扩展内置shell功能最常见的方法,尽快掌握函数非常重要,会便于对业务进行封装。“分而治之”的策略在PowerShell中重要而...
  • fuhj02
  • fuhj02
  • 2010年11月23日 01:49
  • 336

我能用Windows PowerShell做什么:检索数字签名

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com 检索数字签名Get-AuthenticodeSi...
  • itanders
  • itanders
  • 2007年09月12日 22:37
  • 1235

我能用Windows PowerShell做什么:暂停 Windows PowerShell 脚本

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com        暂停 Windows PowerS...
  • itanders
  • itanders
  • 2007年09月14日 22:22
  • 5231

使用PowerShell排错----PowerShell入门

PowerShell是一个面向对象、命令行、
  • Burgess_Liu
  • Burgess_Liu
  • 2014年07月02日 21:23
  • 4247

PowerShell的学习笔记(1)

以前笔者Linux Shell脚本用的比较多;但是对于Window的Powershell脚本以前偶偶用过,但是用的不多;但是由于最近在学习研究Powershell DSC,而PowerShell DS...
  • chancein007
  • chancein007
  • 2017年01月30日 22:07
  • 1052

我能用Windows PowerShell做什么:保存 Windows PowerShell 别名

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com     保存 Windows PowerShel...
  • itanders
  • itanders
  • 2007年09月13日 17:27
  • 788

我能用Windows PowerShell做什么:列出特殊的成员

注:本篇文章,未在联系作者以及得到许可的情况下, 禁止以任何形式进行转载。By:Anders      Mail:katrina520@163.com        列出特殊的成员Get-Unique...
  • itanders
  • itanders
  • 2007年09月13日 21:48
  • 683

Move-Item 帮助信息

如下说明是翻译PowerShell中: help Move-Item 产生的帮助信息. 译者: Edengundam(马涛) Move-Item 大纲从一个位置移动项到另一个位置. 语法Move-It...
  • PowerShell
  • PowerShell
  • 2007年10月24日 18:53
  • 2344
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我能用Windows PowerShell做什么:过滤返回的数据
举报原因:
原因补充:

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