PowerShell強大管道


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

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

  示例:下面我們實踐利用ForEach-Object來計算本地文件目錄的文件大小:

image

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

   示例:輸出文件大於100KB的文件名字和大小:

image

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

  示例:選擇目錄下文件的文件名和大小輸出:

SNAGHTML3b707d0

   4:排序Sort-Object:簡寫sort,對於集合對象參照一個或者多個屬性排序,可以指定-descending為倒序。

     示例:獲取最大的前5個文件:

SNAGHTML3bc4128

   5:管道樹Tee-Object:簡寫為tee,可以把管道模型傳入的對象記錄在文件日志或者賦值給變量保存等。提供-inputObject ,-filePath ,-variable

  示例:保存文件對象時$test變量:

SNAGHTML3c03d8f

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

   示例:按照文件類型分組並按照組內文件個數排序

SNAGHTML3c30688

 

 

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

  示例:統計文件大小的最小值,最大值,平均值,總大小:

SNAGHTML3c60aad

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

     示例:新建一個文件夾2,比較連個目錄的不同:

SNAGHTML3cb035d

今天就到這里,PowerShell很強大,繼續學習。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM