1. 程式人生 > >Powershell實用命令(2)

Powershell實用命令(2)

[] 哪些 stream 空白字符 lang mini sum fin his

我又來了,今天給大家分享的實用命令是Measure-Object,看這個命令的文字意思就知道是用於統計評估對象的了,那我們來說說他的具體用法

首先我們可以看下這個命令的語法,看看他能支持哪些參數

PS C:\Windows\system32> Get-Command measure-Object -Syntax

Measure-Object [[-Property] <string[]>] [-InputObject <psobject>] [-Sum] [-Average] [-Maximum] [-Minimum] [<CommonParameters>]

Measure-Object [[-Property] <string[]>] [-InputObject <psobject>] [-Line] [-Word] [-Character] [-IgnoreWhiteSpace] [<CommonParameters>]

從上面我們可以看到Measure-Object能夠支持求和,求平均值,取最大值,取最小值,統計行數,單詞數,字符數,IgnoreWhiteSpace參數是為了讓你在統計的時候忽略空白字符(空格,回車)的計數。
下面我們用代碼來分別檢驗一下這些功能

PS C:\Windows\system32> Get-Process | measure -Property vm -Maximum

Count    : 210
Average  : 
Sum      : 
Maximum  : 2238980472832
Minimum  : 
Property : VM

PS C:\Windows\system32> Get-Process | measure -Property vm -Minimum

Count    : 210
Average  : 
Sum      : 
Maximum  : 
Minimum  : 4096
Property : VM

PS C:\Windows\system32> Get-Process | measure -Property vm -Average

Count    : 214
Average  : 1596722333006.95
Sum      : 
Maximum  : 
Minimum  : 
Property : VM

PS C:\Windows\system32> Get-Process | measure -Property vm -sum

Count    : 212
Average  : 
Sum      : 337291811336192
Maximum  : 
Minimum  : 
Property : VM

PS C:\Windows\system32> Get-Content D:\File1.txt | measure -Line -Word -Character

Lines Words Characters Property
----- ----- ---------- --------
    4    20        113         

PS C:\Windows\system32> Get-Content D:\File1.txt | measure -Line -Word -Character -IgnoreWhiteSpace

Lines Words Characters Property
----- ----- ---------- --------
    4    20         97         

PS C:\Windows\system32> Get-Content D:\File1.txt
Learning Powershell Technology

I like Powershell Script Language

Do you like it as me

Fine , let‘s learn it togather

上面的代碼秀出了Measure-Object的功能,就問你,強不強大,厲不厲害,不需要一會調用max,一會調用min,直接一個命令搞定所有

再介紹另外一個比較實用的Measure命令,Measure-Command,這個命令經常用來檢測代碼的運行時間,通過這個時間,我們可以評估出哪種代碼更加優秀,所需時間更短,提升我們代碼的執行效率,降低運行代碼主機的性能損耗

$Script1={For($i=0;$i -le 100;$i++){Add-Content -Path D:\File1.txt -Value "I want add some word in this file"}}

$Script2={$NW=New-Object System.IO.StreamWriter "d:\file1.txt"; For($i=0;$i -lt 100;$i++){$NW.WriteLine("I Write it again !")};$nw.Close()}

PS C:\Windows\system32> Measure-Command -Expression $Script1 | select TotalMilliseconds

TotalMilliseconds
-----------------
         117.5692

PS C:\Windows\system32> Measure-Command -Expression $Script2 | select TotalMilliseconds

TotalMilliseconds
-----------------
           2.5188

通過Measure-Command 可以評估出同樣的結果,但是代碼不同,所花費時間是完全不一樣的,這樣能使我們明白自己的代碼是否優秀。

好了,今天就介紹到這,瓜子花生啤酒,客官來一份?

Powershell實用命令(2)