佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > PowerShell入門教程之PowerShell管道介紹

PowerShell入門教程之PowerShell管道介紹

熱門標簽:百度競價排名 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 AI電銷 Linux服務(wù)器 呼叫中心市場需求 服務(wù)外包

管道對于Shell來說是個化腐朽為神奇的東西,它極大地提高了在命令行上編程的能力。深入理解并熟練使用管道是PowerShell高手之路的必經(jīng)階段。沒有管道,我們就不得不通過許多的變量來保存中間結(jié)果,雖然這是腳本和其他編譯型語言的慣用伎倆,但對于戰(zhàn)斗在命令行上的Shell而言,就是一件非常痛苦的事情。

管道模型

  顧名思義,管道就是用管子將事物連接起來構(gòu)成通道。從表面上看,管道是一串由管道符號(|)連接起來的一些命令。從功能來看,管道就像流水線,將上一個處理的結(jié)果,傳送給下一個處理作為輸入。由管道連接起來的命令從左到右依次執(zhí)行,最后將結(jié)果輸出到控制臺。以前的管道流傳送的都是字符串,或者是可以格式化為字符串的表達式,PowerShell的管道流則可以傳輸對象。

PowerShell中的管道如何工作?

  PowerShell的管道,能夠傳遞對象,這是一個巨大的進步。到這個時候,管道才有了點函數(shù)調(diào)用的味道。調(diào)用方能夠傳遞復(fù)雜的對象,接收方則要進行對象的類型匹配,匹配不正確命令執(zhí)行就會出錯。但這里也有例外。PowerShell管道不但可以按整個對象傳遞,還能夠按照屬性名傳遞,這一特性大大提高了管道的可用性,和處理能力。這使得我們能夠在類型不匹配的情況下,也能夠使用管道,傳遞對象的部分屬性。

管道使用舉例

在PowerShell中有一些專門為管道設(shè)計的命令如get-member、sort、measure等,也有一些命令雖然不是為管道專門設(shè)計,但卻在管道中大放光彩。下面舉例說明幾個最常用的命令:

select

  在管道中使用select命令,就像在Cmd中使用dir一樣常見。不用看select命令的詳細語法,你就能寫出最常用的select使用方法。如下:

復(fù)制代碼 代碼如下:

dir | select name,LastWriteTime

這個命令顯示當前文件夾中的文件和子文件夾的名字和最后修改日期。

where

  where命令使用來做篩選的,可以簡寫為?,使用示例如下:

復(fù)制代碼 代碼如下:

dir | ? {$_.mode –like “d*”} | select name,LastWriteTime

這個命令能夠只顯示出當前文件夾的子文件夾,而不顯示文件。

foreach

  foreach可以對傳遞過來的每個對象進行處理,可以簡寫為‘%'。使用示例如下:

復(fù)制代碼 代碼如下:

dir | ? {$_.mode -notlike "d*"} | % {echo "The size of file '$($_.name)' is $_.Length"}

這個命令的結(jié)果是輸出類似“The size of file 'myScript.ps1' is 1520”這樣的信息,每個文件一行。

結(jié)語

  管道的好處很多,在這小小的篇幅中是說不完的。上道以后,慢慢體會,你會知道管道的妙處。

您可能感興趣的文章:
  • Shell腳本中管道的幾種使用實例講解
  • Shell腳步攻略之管道重定向基礎(chǔ)
  • PowerShell管道入門必看篇(管道例子大全)
  • linux shell 管道命令(pipe)使用及與shell重定向區(qū)別
  • PowerShell實現(xiàn)按條件終止管道的方法
  • PowerShell中終止管道的方法
  • Windows Powershell導(dǎo)出管道結(jié)果
  • Windows Powershell過濾管道結(jié)果
  • shell腳本一鍵同時推送代碼至github和gitee的解決辦法
  • 如何利用 tee 命令調(diào)試shell腳本中的管道

標簽:湘潭 蘭州 仙桃 湖南 銅川 黃山 崇左 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標題《PowerShell入門教程之PowerShell管道介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    西昌市| 丹东市| 元朗区| 阳泉市| 彝良县| 宝丰县| 青州市| 北辰区| 海盐县| 汝阳县| 沙田区| 通许县| 承德县| 肥城市| 正蓝旗| 冕宁县| 黄陵县| 肇源县| 沙洋县| 白城市| 郓城县| 金阳县| 黄陵县| 额敏县| 稷山县| 大同市| 舒兰市| 宣武区| 红桥区| 合川市| 邹平县| 孟州市| 阜新市| 金秀| 安阳市| 乌兰浩特市| 余姚市| 光山县| 同心县| 浦东新区| 凤冈县|