PowerShell強大管道

2021-09-08 14:28:58 字數 1871 閱讀 4281

powershell是在window是的外殼語言,提供了多windows的更多操作,讓我們於windows的操作更簡單方便,以及就是就是管理員的命令列更好的管理。powershell提供了與.net fcl(.net類庫)的操作性,我們可以利用強大的.net fcl在powershell中。powershell提供強大的管道模型,管道指的是乙個命令的輸出可以利用操作符(|)方便的傳遞到下個命令作為輸入。powershell不同傳統管道模型的是它是一門基於物件的管道流,即在命令之間傳遞的物件不是簡單的文字。下面我們就以本地檔案操作來實踐powershell的管道常見命令:

1:集合遍歷foreach-object:可以簡寫為foreach,或者%代替,提供了管道傳入的對集合的遍歷,同時提供了操作前begin,操作process,結束end命令,其中$_提供對當前索引的指代。

示例:下面我們實踐利用foreach-object來計算本地檔案目錄的檔案大小:

2:條件選擇where-object:可以簡寫為where或者?代替。提供了對管道輸入集合的過濾篩選,類似於sql中的where條件,$_提供對當前索引的指代。

示例:輸出檔案大於100kb的檔案名字和大小:

3:選擇select-object:簡寫select,提供了對物件的選擇類似於sql的select,.net的new匿名物件。同時select支援-first和-last取最前面或者最後面的幾個相當於sql 中top,與下例中sort-object結合將很有用。

示例:選擇目錄下檔案的檔名和大小輸出:

4:排序sort-object:簡寫sort,對於集合物件參照乙個或者多個屬性排序,可以指定-descending為倒序。

示例:獲取最大的前5個檔案:

5:管道樹tee-object:簡寫為tee,可以把管道模型傳入的物件記錄在檔案日誌或者賦值給變數儲存等。提供-inputobject ,-filepath ,-variable

示例:儲存檔案物件時$test變數:

6:分組group-object:簡寫group,提供依據屬性分組類似sql group by。

示例:按照檔案型別分組並按照組內檔案個數排序

7:集合統計measure-object:簡寫:measure,提供了對集合的統計,簡便的方法來獲取最小值、最大值及平均值屬性。

示例:統計檔案大小的最小值,最大值,平均值,總大小:

8:比較compare-object:簡寫diff,提供了對兩個物件或集合的比較,其中有單側指向器,=>表達此物件出現在右邊,<=表示差異物件存在於左邊。

示例:新建乙個資料夾2,比較連個目錄的不同:

今天就到這裡,powershell很強大,繼續學習。

Powershell使用管道

管道並不是什麼新事物,以前的cmd控制台也有重定向的命令,例如dir more可以將結果分屏顯示。傳統的cmd管道是基於文字的,但是powershell是基於物件。ps ls sort object descending name select object name,length,lastwrit...

PowerShell 管道命令

1 ls sort descending name format table name,mode 通過ls獲取當前目錄的所有檔案資訊 通過sort descending對檔案資訊按照name降序排列 將排序好的name和mode格式化成table輸出 2 where object where 過濾列...

Powershell使用管道

管道並不是什麼新事物,以前的cmd控制台也有重定向的命令,例如dir more可以將結果分屏顯示。傳統的cmd管道是基於文字的,但是powershell是基於物件。ps ls sort object descending name select object name,length,lastwrit...