Powershell使用Select-Object -First节约查询时间


Select-Object 有一个能接收数字的“-Firest”参数,它将返回第X元素,例如这样:

这里返回了前四条结果:

PS C:\> dir| Select-Object -First 4
    目录: C:\
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2013/10/24     20:59            ADSI Scriptomatic
d----        2013/11/30     20:41            HEW STONE
d----         2013/10/6     11:42            Intel
d----        2013/11/14      7:11            New Oriental Soft

从Powershell3.0开始,“First”参数不仅能指定的结果条数。  同时也能协调管道命令完成工作,并有效的使其停止。

所以如果你用一个命令去获得你一定范围内的结果,你可以这样做,你应该使用select-object -frist x  这能加速你的代码,某些情况下你会获得惊喜。

假设我们寻找名为”test.txt”的文件在你的$home目录下同时该文件可能只有一个,但是你不知道它在哪里,这时你使用Get-ChildItem配合-Recurse参数去递归查询全部的目录:

Get-ChildItem -Path $home -Filter test.txt -Recurse -ErrorAction SilentlyContinue

当你运行时,Get-ChildItem迟早会发现你要的文件同时它还会继续查找子目录,也许还要一会儿才能结束,因为命令不知道是否还有其它符合条件的。

你现在应该知道要怎么做了,所以当你提前知道需要结果的范围,请这样做:

Get-ChildItem -Path $home -Filter test.txt -Recurse -ErrorAction SilentlyContinue |
  Select-Object -First 1

这时,只要发现文件后Get-ChildItem命令将会立即停止。

原文地址:Save Time With Select-Object -First!

本文链接: https://www.pstips.net/save-time-with-select-object-first.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注