操作符 |
意義 |
返回True的例子 |
-eq |
相等符 |
10 -eq 10 |
-ne |
不相等符 |
10 -ne 9 |
-ge |
大于等于操作符 |
10 -ge 9 |
-gt |
大于操作符 |
10 -gt 9 |
-lt |
小于操作符 |
10 -lt 11 |
-le |
小于等于操作符 |
10 -le 11 |
-like |
相似操作符 |
"Bob" -like "*ob" |
-notlike |
非相似操作符 |
"Bob" -notlike "1*ob" |
-match |
匹配操作符 |
"Bob" -match "B*ob" |
-notmatch |
非匹配操作符 |
"Bob" -notmatch "123*" |
-contains |
包含操作符 |
"Bob","Bob1" -contains "Bob" |
-notcontains |
非包含操作符 |
"Bob","Bob1" -notcontains "ob" |
-is |
類型操作符 |
"Bob" -is "System.String" |
-isnot |
非類型操作符 |
"Bob" -isnot "System.Int32" |
3. ForEach-Object:處理列表或者命令輸出的每一個(gè)項(xiàng)目
使用ForEach-Object命令(別名是foreach和%)來(lái)處理列表中的每一項(xiàng)。
使用例子如下:
例子中1..10的意思是簡(jiǎn)單聲明了一個(gè)1~10的一組數(shù)字。其中處理列表中每一項(xiàng)還可以用for、foreach、do和while等,以后會(huì)更詳細(xì)的介紹。
4. Select-Object:選擇列表項(xiàng)或輸出結(jié)果只輸出要的結(jié)果
使用Select-Object(別名是select)對(duì)象可以選擇一個(gè)對(duì)象或者一組對(duì)象的指定屬性。還可以從對(duì)象的數(shù)組中選擇唯一的對(duì)象,也可以從對(duì)象數(shù)組的開頭或末尾選擇指定個(gè)數(shù)的對(duì)象。
如果使用 Select-Object 來(lái)選擇指定屬性,則它會(huì)從輸入對(duì)象中復(fù)制這些屬性的值,并創(chuàng)建具有指定的屬性和復(fù)制的值的新對(duì)象。使用 Property 參數(shù)指定您要選擇的屬性。或者,使用 First、Last、Unique、Skip 和 Index 參數(shù)從輸入對(duì)象數(shù)組中選擇特定對(duì)象。
使用例子如下:
a) 選擇當(dāng)前路徑下所有項(xiàng)目的Name和Length屬性:
b) 選擇當(dāng)前路徑下前三個(gè)項(xiàng)目:
c) 選擇當(dāng)前路徑下所有項(xiàng)目的Name和自定義屬性,名字叫做Last Modified Day,結(jié)果是通過(guò)LastWriteTime屬性算出來(lái)的:
d) 選擇當(dāng)前路徑下第一個(gè)和第六個(gè)項(xiàng)目:
e) 選擇當(dāng)前路徑下除第五個(gè)項(xiàng)目外的所有項(xiàng)目:
f) 顯示數(shù)組中的唯一數(shù)字:
5. Sort-Object:對(duì)列表項(xiàng)或者輸出結(jié)果進(jìn)行排序
使用Sort-Object(別名是sort)可以按照特定屬性值對(duì)對(duì)象進(jìn)行排序。您可以指定一個(gè)屬性或多個(gè)屬性(用于多鍵排序),也可以選擇區(qū)分大小寫或不區(qū)分大小寫的排序。您還可以指示 Sort-Object 只顯示對(duì)于特定屬性具有唯一值的對(duì)象。
如果某個(gè)對(duì)象不具有所指定的屬性之一,則 cmdlet 會(huì)將該對(duì)象的屬性值解釋為 NULL,并將其放置在排序順序的末尾。
使用例子如下:
a) 對(duì)當(dāng)前路徑下所有的項(xiàng)目按照長(zhǎng)度從小到大排序:
b) 對(duì)整個(gè)數(shù)組的唯一性數(shù)字按照降序排列:
6. Tee-Object:保存并輸出列表項(xiàng)或者輸出結(jié)果
使用Tee-Object(別名是tee)命令可以將命令輸出結(jié)果保存在文件或者變量中,同時(shí)將其顯示在控制臺(tái)中。
a) 將當(dāng)前路徑下所有大小大于900的項(xiàng)目都保存到文件中并顯示在控制臺(tái)中:
b) 將當(dāng)前路徑下所有大小大于900的項(xiàng)目都保存在變量中并顯示在控制臺(tái)中:
7. Group-Object:對(duì)列表項(xiàng)或者輸出結(jié)果進(jìn)行分組
使用Group-Object(group)對(duì)列表項(xiàng)或者輸出結(jié)果進(jìn)行分組,指定的屬性包含相同值的組對(duì)象。Group-Object 返回一個(gè)表,其中每個(gè)屬性值對(duì)應(yīng)一行,同時(shí)一個(gè)列顯示具有該值的項(xiàng)目數(shù)。
還可以讓返回的對(duì)象是個(gè)HashTable——key-value的鍵值對(duì)數(shù)組,指定-AsHashTable參數(shù):
8. Measure-Object:對(duì)列表項(xiàng)或輸出結(jié)果進(jìn)行計(jì)算
使用Measure-Object(measure)計(jì)算對(duì)象的數(shù)字屬性以及字符串對(duì)象(如文本文件)中的字符數(shù)、單詞數(shù)和行數(shù)。它計(jì)算某些類型對(duì)象的屬性值。Measure-Object 執(zhí)行三種類型測(cè)量,具體取決于命令中的參數(shù)??梢詫?duì)對(duì)象計(jì)數(shù)并計(jì)算數(shù)字值的最小值、最大值、總和及平均值。對(duì)于文本對(duì)象,它可以計(jì)數(shù)并計(jì)算行數(shù)、單詞數(shù)和字符數(shù)。
a) 計(jì)算當(dāng)前路徑下項(xiàng)目的總數(shù):
b) 計(jì)算當(dāng)前路徑下項(xiàng)目的長(zhǎng)度的最小值、最大值以及平均值:
c) 計(jì)算當(dāng)前文件中字符、行、單詞的總數(shù):
9. Compare-Object:對(duì)兩組對(duì)象進(jìn)行比較
用Compare-Object(別名是compare和diff)可以將兩組對(duì)象進(jìn)行比較,一組對(duì)象為Reference組,而另一組為Difference組。比較的結(jié)果將指示屬性值是只出現(xiàn)在 Reference 組中的對(duì)象中(由 = 符號(hào)指示),或是只出現(xiàn)在 Difference 組中的對(duì)象中(由 => 符號(hào)指示),抑或(在指定了 IncludeEqual 參數(shù)的情況下)同時(shí)出現(xiàn)在這兩個(gè)對(duì)象中(由 == 符號(hào)指示)。
10. ConvertTo-Html:將對(duì)象轉(zhuǎn)換為HTML
用ConvertTo-Html可以將Microsoft.Net Framework對(duì)象轉(zhuǎn)換為可在Web瀏覽器中顯示的HTML:
11. Export-Csv:將對(duì)象轉(zhuǎn)換為CSV字符串存儲(chǔ)在文件中
用Export-Csv(別名是epcsv)將 Microsoft .NET Framework 對(duì)象轉(zhuǎn)換為一系列以逗號(hào)分隔的、長(zhǎng)度可變的 (CSV) 字符串,并將這些字符串保存到一個(gè) CSV 文件中。
12. Format-List、Format-Table、Format-Wide:將輸出結(jié)果格式化
Format-List(別名是fl)可以將輸出的格式設(shè)置為屬性列表,其中每個(gè)屬性均各占一行顯示:
Format-Table(別名是ft)可以將輸出的格式設(shè)置為表:
Format-Wide(別名是fw)可以將對(duì)象的格式設(shè)置為只能顯示每個(gè)對(duì)象的一個(gè)屬性的寬表:
13. Get-Unique:獲取輸出結(jié)果的唯一值
使用Get-Unique(別名是gu)可以從排序列表中返回唯一項(xiàng)目。
14. Out-File:將輸出結(jié)果輸出到文件
可以使用Out-File將輸出發(fā)送到文件:
15. Get-Member:如何獲取管道操作對(duì)象的屬性
管道操作的時(shí)候經(jīng)常會(huì)用到管道輸入對(duì)象的屬性,使用Get-Member(gm)來(lái)獲取對(duì)象的屬性和方法。
a) 獲取對(duì)象的公有屬性:
b) 獲取對(duì)象的公有方法:
當(dāng)?shù)弥獙?duì)象的公有屬性和方法的名字后,就可以在管道操作中使用了。
16. 如何判斷一個(gè)命令是否支持管道輸入
學(xué)會(huì)使用管道后,得學(xué)會(huì)判斷一個(gè)命令是否支持管道輸入。使用Get-Help命令獲取一個(gè)命令的使用方法,對(duì)于參數(shù),可以看到是否支持管道輸入,或者通過(guò)MSDN去查詢命令幫助。
比如PowerShell Core里面的Where-Object的MSDN的幫助站點(diǎn)是:
https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/Where-Object。
對(duì)于里面的-InputObject則是支持管道輸入,-Is則不支持管道輸入:
比如PowerShell Core里面的Move-Item的MSDN的幫助站點(diǎn)是:
https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.management/Move-Item。
對(duì)于里面的-Path則是支持管道輸入,-UseTransaction則不支持管道輸入:
對(duì)于沒(méi)有任何一個(gè)參數(shù)支持管道輸入的命令則是不支持管道輸入的命令。
17. 自動(dòng)化處理數(shù)據(jù)密集型任務(wù)
如果要對(duì)大量的數(shù)據(jù)進(jìn)行處理簡(jiǎn)單的任務(wù),可以把數(shù)據(jù)保存在一個(gè)CSV文件里面,使用Import-Csv來(lái)導(dǎo)入數(shù)據(jù),導(dǎo)入后為每一行自動(dòng)創(chuàng)建對(duì)象,并將列的名字作為對(duì)象的屬性,之后用foreach對(duì)數(shù)據(jù)的每一項(xiàng)進(jìn)行操作。
如果你命名的CSV文件中的列的名字和管道使用的參數(shù)名一致,PowerShell可以實(shí)現(xiàn)這種部分或全部參數(shù)的映射。
PowerShell的一個(gè)主要的優(yōu)點(diǎn)就是具有自動(dòng)化重復(fù)性任務(wù)的能力。有時(shí)候,這些重復(fù)性的任務(wù)是動(dòng)作密集的(如系統(tǒng)維護(hù),操作注冊(cè)表,或者文件清理),并且包括復(fù)雜的有順序的互相調(diào)用的命令。在這種情況下,可以通過(guò)編寫腳本將這些操作組合到一起,這樣可以節(jié)省時(shí)間,降低錯(cuò)誤的發(fā)生。
上述列舉的只是常用的命令和使用方法,PowerShell強(qiáng)大的命令集完全不止這些。
以上這篇PowerShell管道入門必看篇(管道例子大全)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
標(biāo)簽:運(yùn)城 六盤水 濟(jì)南 德州 山南 鶴崗 湛江 岳陽(yáng)
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell管道入門必看篇(管道例子大全)》,本文關(guān)鍵詞 PowerShell,管道,入門,必看篇,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。