亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

PowerShell管道入門必看篇(管道例子大全)

2020-03-26 19:07:06
字體:
來源:轉載
供稿:網友

PowerShell的一個重中之重的功能就是管道(pipeline),本文從淺入深,一步一步詳解管道的使用方法和例子,來看看有沒有你所不知道的吧,如果全知道,恭喜你已經很厲害啦——適用于所有PowerShell應用小白與技術老鳥。另外歡迎各位技術大牛來補充討論學習~

1. 管道(pipeline)是什么

在Shell中一個重要的基本概念就是管道(pipeline),即在一組命令中,輸出的命令結果成為下一個命令的輸入參數。管道的概念與真實生活中的生產線比較相似:在不同的生產環節進行連續的再加工,如下圖例子:

PowerShell,管道

“Get-ChildItem”意思是獲取當前路徑的所有項目,“|Where-Object {$_.Length -gt 200}”意思是查看上一步結果,取所有長度大于200的項目,“|Sort-Object -Descending Name”意思是查看上一步結果,按照Name進行倒敘排列。

在PowerShell中,使用管道符號(|)來劃分管道中的每個命令,上述例子說明了管道的強大功能,同時PowerShell在管道中傳遞的是高保真對象,不僅僅是文本描述。

下面主要給大家介紹一下常用的管道處理命令。

2. Where-Object:過濾列表項或命令輸出結果

可以使用Where-Object(別名是where和?)從列表或者命令輸出結果中過濾選擇你需要的項目。

對于輸入的每一項,Where-Object都會根據{}中定義的腳本塊對輸入進行計算,如果返回True,則輸出,否則不輸出。如下例子:

PowerShell,管道

{}表示一個腳本塊,可以輸入一系列PowerShell命令,其中$_代表當前輸入對象,在這個例子中,$_就代表一個文件項目。-gt是比較操作符,意思是大于,關于比較操作符的介紹如下:

PowerShell中比較操作符是用于對表達式進行比較的。默認情況比較操作符不區分大小寫,如果想要區分,需要使用-C前綴,不需要區分的,使用-I前綴。

PowerShell,管道

所有可用的比較操作符如下表格:

 

操作符

意義

返回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:處理列表或者命令輸出的每一個項目

使用ForEach-Object命令(別名是foreach和%)來處理列表中的每一項。

使用例子如下:

PowerShell,管道

例子中1..10的意思是簡單聲明了一個1~10的一組數字。其中處理列表中每一項還可以用for、foreach、do和while等,以后會更詳細的介紹。

4. Select-Object:選擇列表項或輸出結果只輸出要的結果

使用Select-Object(別名是select)對象可以選擇一個對象或者一組對象的指定屬性。還可以從對象的數組中選擇唯一的對象,也可以從對象數組的開頭或末尾選擇指定個數的對象。

如果使用 Select-Object 來選擇指定屬性,則它會從輸入對象中復制這些屬性的值,并創建具有指定的屬性和復制的值的新對象。使用 Property 參數指定您要選擇的屬性。或者,使用 First、Last、Unique、Skip 和 Index 參數從輸入對象數組中選擇特定對象。

使用例子如下:

a) 選擇當前路徑下所有項目的Name和Length屬性:

PowerShell,管道

b) 選擇當前路徑下前三個項目:

PowerShell,管道

c) 選擇當前路徑下所有項目的Name和自定義屬性,名字叫做Last Modified Day,結果是通過LastWriteTime屬性算出來的:

PowerShell,管道

d) 選擇當前路徑下第一個和第六個項目:

PowerShell,管道

e) 選擇當前路徑下除第五個項目外的所有項目:

PowerShell,管道

f) 顯示數組中的唯一數字:

PowerShell,管道

5. Sort-Object:對列表項或者輸出結果進行排序

使用Sort-Object(別名是sort)可以按照特定屬性值對對象進行排序。您可以指定一個屬性或多個屬性(用于多鍵排序),也可以選擇區分大小寫或不區分大小寫的排序。您還可以指示 Sort-Object 只顯示對于特定屬性具有唯一值的對象。

如果某個對象不具有所指定的屬性之一,則 cmdlet 會將該對象的屬性值解釋為 NULL,并將其放置在排序順序的末尾。

使用例子如下:

a) 對當前路徑下所有的項目按照長度從小到大排序:

PowerShell,管道

b) 對整個數組的唯一性數字按照降序排列:

PowerShell,管道

6. Tee-Object:保存并輸出列表項或者輸出結果

使用Tee-Object(別名是tee)命令可以將命令輸出結果保存在文件或者變量中,同時將其顯示在控制臺中。

a) 將當前路徑下所有大小大于900的項目都保存到文件中并顯示在控制臺中:

PowerShell,管道

b) 將當前路徑下所有大小大于900的項目都保存在變量中并顯示在控制臺中:

PowerShell,管道

7. Group-Object:對列表項或者輸出結果進行分組

使用Group-Object(group)對列表項或者輸出結果進行分組,指定的屬性包含相同值的組對象。Group-Object 返回一個表,其中每個屬性值對應一行,同時一個列顯示具有該值的項目數。

PowerShell,管道

還可以讓返回的對象是個HashTable——key-value的鍵值對數組,指定-AsHashTable參數:

PowerShell,管道

8. Measure-Object:對列表項或輸出結果進行計算

使用Measure-Object(measure)計算對象的數字屬性以及字符串對象(如文本文件)中的字符數、單詞數和行數。它計算某些類型對象的屬性值。Measure-Object 執行三種類型測量,具體取決于命令中的參數??梢詫ο笥嫈挡⒂嬎銛底种档淖钚≈?、最大值、總和及平均值。對于文本對象,它可以計數并計算行數、單詞數和字符數。

a) 計算當前路徑下項目的總數:

PowerShell,管道

b) 計算當前路徑下項目的長度的最小值、最大值以及平均值:

PowerShell,管道

c) 計算當前文件中字符、行、單詞的總數:

PowerShell,管道

9. Compare-Object:對兩組對象進行比較

用Compare-Object(別名是compare和diff)可以將兩組對象進行比較,一組對象為Reference組,而另一組為Difference組。比較的結果將指示屬性值是只出現在 Reference 組中的對象中(由 <= 符號指示),或是只出現在 Difference 組中的對象中(由 => 符號指示),抑或(在指定了 IncludeEqual 參數的情況下)同時出現在這兩個對象中(由 == 符號指示)。

PowerShell,管道

10. ConvertTo-Html:將對象轉換為HTML

用ConvertTo-Html可以將Microsoft.Net Framework對象轉換為可在Web瀏覽器中顯示的HTML:

PowerShell,管道

11. Export-Csv:將對象轉換為CSV字符串存儲在文件中

用Export-Csv(別名是epcsv)將 Microsoft .NET Framework 對象轉換為一系列以逗號分隔的、長度可變的 (CSV) 字符串,并將這些字符串保存到一個 CSV 文件中。

PowerShell,管道

12. Format-List、Format-Table、Format-Wide:將輸出結果格式化

Format-List(別名是fl)可以將輸出的格式設置為屬性列表,其中每個屬性均各占一行顯示:

PowerShell,管道

Format-Table(別名是ft)可以將輸出的格式設置為表:

PowerShell,管道

Format-Wide(別名是fw)可以將對象的格式設置為只能顯示每個對象的一個屬性的寬表:

PowerShell,管道

13. Get-Unique:獲取輸出結果的唯一值

使用Get-Unique(別名是gu)可以從排序列表中返回唯一項目。

PowerShell,管道

14. Out-File:將輸出結果輸出到文件

可以使用Out-File將輸出發送到文件:

PowerShell,管道

15. Get-Member:如何獲取管道操作對象的屬性

管道操作的時候經常會用到管道輸入對象的屬性,使用Get-Member(gm)來獲取對象的屬性和方法。

a) 獲取對象的公有屬性:

PowerShell,管道

b) 獲取對象的公有方法:

PowerShell,管道

當得知對象的公有屬性和方法的名字后,就可以在管道操作中使用了。

16. 如何判斷一個命令是否支持管道輸入

學會使用管道后,得學會判斷一個命令是否支持管道輸入。使用Get-Help命令獲取一個命令的使用方法,對于參數,可以看到是否支持管道輸入,或者通過MSDN去查詢命令幫助。

比如PowerShell Core里面的Where-Object的MSDN的幫助站點是:

https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.core/Where-Object。

對于里面的-InputObject則是支持管道輸入,-Is則不支持管道輸入:

PowerShell,管道

比如PowerShell Core里面的Move-Item的MSDN的幫助站點是:

https://msdn.microsoft.com/powershell/reference/5.1/microsoft.powershell.management/Move-Item。

對于里面的-Path則是支持管道輸入,-UseTransaction則不支持管道輸入:

PowerShell,管道

對于沒有任何一個參數支持管道輸入的命令則是不支持管道輸入的命令。

17. 自動化處理數據密集型任務

如果要對大量的數據進行處理簡單的任務,可以把數據保存在一個CSV文件里面,使用Import-Csv來導入數據,導入后為每一行自動創建對象,并將列的名字作為對象的屬性,之后用foreach對數據的每一項進行操作。

PowerShell,管道

如果你命名的CSV文件中的列的名字和管道使用的參數名一致,PowerShell可以實現這種部分或全部參數的映射。

PowerShell的一個主要的優點就是具有自動化重復性任務的能力。有時候,這些重復性的任務是動作密集的(如系統維護,操作注冊表,或者文件清理),并且包括復雜的有順序的互相調用的命令。在這種情況下,可以通過編寫腳本將這些操作組合到一起,這樣可以節省時間,降低錯誤的發生。

上述列舉的只是常用的命令和使用方法,PowerShell強大的命令集完全不止這些。

以上這篇PowerShell管道入門必看篇(管道例子大全)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图美腿丝袜| 日韩av大片免费看| 欧美日韩在线视频一区二区| 欧美午夜丰满在线18影院| 欧美视频在线观看免费网址| 国产精品精品视频一区二区三区| 欧美一级电影免费在线观看| 国产成人午夜视频网址| 日韩在线观看免费网站| 97视频在线观看亚洲| 国产suv精品一区二区三区88区| 欧美日韩午夜激情| 成人性生交大片免费观看嘿嘿视频| 午夜欧美不卡精品aaaaa| 日韩亚洲精品电影| 91免费在线视频| 日韩大片免费观看视频播放| 欧美激情伊人电影| 国产精品久久久久久久久久99| 亚洲韩国日本中文字幕| 久久久精品视频在线观看| 97免费视频在线播放| 欧美丝袜第一区| 最近免费中文字幕视频2019| 91精品国产自产在线| 日韩激情视频在线播放| 久久久久成人精品| 久久久久久久久亚洲| 7777kkkk成人观看| 亚洲一区www| 久久精视频免费在线久久完整在线看| 91免费精品国偷自产在线| 久久久人成影片一区二区三区| 一本色道久久综合狠狠躁篇怎么玩| 久久久在线免费观看| 成人精品视频在线| 色综合老司机第九色激情| 成人网中文字幕| 欧美在线视频播放| 久久久视频精品| 午夜精品福利在线观看| 国产精品视频在线观看| 久久久亚洲欧洲日产国码aⅴ| 午夜美女久久久久爽久久| 亚洲 日韩 国产第一| 国产成人在线一区| 夜夜嗨av色一区二区不卡| 欧美激情中文网| 欧美激情视频网| 亚洲国产精品一区二区三区| 欧美巨大黑人极品精男| 国产亚洲精品高潮| 成人两性免费视频| 91色中文字幕| 日韩午夜在线视频| 日本成人精品在线| 国产精品91久久久久久| 91亚洲精品久久久| 日韩欧美高清在线视频| 欧美大全免费观看电视剧大泉洋| 亚洲欧美国产va在线影院| www.xxxx欧美| 2019亚洲日韩新视频| 91精品国产91久久久久久久久| 97av视频在线| 日韩动漫免费观看电视剧高清| 国产成人精品免高潮在线观看| 亚洲日本中文字幕| 色噜噜狠狠狠综合曰曰曰| 国产成人精品久久二区二区91| 国产欧美在线视频| 91牛牛免费视频| 国产精品久久久久秋霞鲁丝| 国产一区二区三区网站| 97视频在线观看播放| www.国产一区| 亚洲精品xxxx| 欧美精品少妇videofree| 国产在线拍揄自揄视频不卡99| 91在线国产电影| 国产精品美女久久久免费| 日韩中文在线观看| 色悠久久久久综合先锋影音下载| 97国产一区二区精品久久呦| 高潮白浆女日韩av免费看| 一区二区三区精品99久久| 成人午夜激情免费视频| 亚洲乱码一区av黑人高潮| 欧美成人免费在线观看| 亚洲欧美999| 成人a视频在线观看| 日韩精品欧美国产精品忘忧草| 91香蕉嫩草神马影院在线观看| 色偷偷噜噜噜亚洲男人的天堂| 亚洲精品久久久久久下一站| 亚洲伊人成综合成人网| 国产91成人video| 国产精品久久电影观看| 色哟哟入口国产精品| 欧美高跟鞋交xxxxhd| 91精品国产高清久久久久久久久| 欧美黑人视频一区| 最好看的2019年中文视频| 91在线播放国产| 亚洲美女av黄| 日韩在线激情视频| 一区二区三区亚洲| 欧美高清不卡在线| 久久精品久久久久久国产 免费| 国产精品偷伦一区二区| 亚洲精品中文字| 国产精品偷伦视频免费观看国产| 欧美猛少妇色xxxxx| 久久99久久久久久久噜噜| 深夜福利91大全| 欧美激情久久久久久| 国产综合香蕉五月婷在线| 久久久av电影| 国产在线观看精品一区二区三区| 91精品成人久久| 欧美亚洲日本网站| 日韩av电影在线免费播放| 8090成年在线看片午夜| 日韩专区中文字幕| 欧美国产精品va在线观看| 国产精品日韩在线一区| 日韩欧美亚洲一二三区| 国产精品欧美激情| 国产精品白丝jk喷水视频一区| 国产精品羞羞答答| 国产国产精品人在线视| 麻豆乱码国产一区二区三区| 欧美最顶级丰满的aⅴ艳星| 午夜精品久久久99热福利| 日韩中文字幕国产| 成人美女免费网站视频| 国产精品视频专区| 日韩在线观看免费全| 精品自拍视频在线观看| 久久国产精品久久久| 亚洲欧美一区二区三区在线| 欧美高清videos高潮hd| 日韩www在线| 高潮白浆女日韩av免费看| 国产精品高潮呻吟久久av野狼| 中国日韩欧美久久久久久久久| 9.1国产丝袜在线观看| 一区二区三区日韩在线| 亚洲色图35p| 欧美第一黄色网| 91av视频在线| 亚洲一区二区三区香蕉| 国产精品久久久久久久久| 丝袜情趣国产精品| 国产999在线观看| 国产欧美一区二区三区视频| 欧美性videos高清精品| 欧美激情欧美狂野欧美精品| 日韩精品高清在线观看| 26uuu另类亚洲欧美日本老年| 亚洲人成在线免费观看| 欧美人与物videos| 国产精品∨欧美精品v日韩精品| 综合网日日天干夜夜久久|