天天看點

[Windows PowerShell10]-PowerShell管道的使用

        PowerShell 的管道機制與Linux 下的Shell管道機制相同,都是将前一個指令的輸出作為後一個指令的輸入,這樣就可以支援類似鍊式程式設計的程式設計模式。比如我們擷取某台Server上的服務,對某些處于停止狀态的服務進行重新開機。這時候我們的政策是擷取所有的服務清單,然後使用Where-Object 接受服務清單,篩選Service狀态是Stopped的進行重新開機。類似這種處理的需求是非常常見的,其中一個例子如下。

        1)鍊式程式設計

[Windows PowerShell10]-PowerShell管道的使用

       首先,我們擷取字首為sql的服務,然後使用管道篩選狀态是 "Stopped"的服務,然後我們再使用管道對每個處于Stopped狀态的服務進行重新開機。這樣三個步驟,簡簡單單的兩個PowerShell 管道就解決了,其間接性可見一斑。注:這裡的兩處錯誤是由于服務無法啟動和Server拼寫錯誤導緻,與管道無關。

        2)格式化輸出

        PowerShell 的管道可以用來做格式化輸出,通常是按照清單和按照Table形式進行輸出,這種應用也是很常見的。

[Windows PowerShell10]-PowerShell管道的使用

這樣我們就得到了清單形式的結果。下面我們嘗試擷取Table形式的結果。

注:鍊式程式設計章節的第一條語句的執行結果就是Table形式的,故不再贅述。

3)對結果進行分析統計

[Windows PowerShell10]-PowerShell管道的使用

我們可以根據檔案的字尾名統計檔案數。

4)使用管道輸出指令執行結果

[Windows PowerShell10]-PowerShell管道的使用

運作結果如下,注:新增了ServiceList.xls

[Windows PowerShell10]-PowerShell管道的使用
[Windows PowerShell10]-PowerShell管道的使用

這是目前總結的幾種管道的應用,後面會繼續深入探讨。

繼續閱讀