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

首頁 > 開發 > PowerShell > 正文

Windows Powershell使用管道

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

管道并不是什么新事物,以前的Cmd控制臺也有重定向的命令,例如Dir | More可以將結果分屏顯示。
傳統的Cmd管道是基于文本的,但是Powershell是基于對象。

PS> ls | Sort-Object -Descending Name | Select-Object Name,Length,LastWriteTime | ConvertTo-Html | Out-File ls.htmlPS> Get-Content .ls.html
Name Length LastWriteTimetest.vbs 170 2011/11/28 16:42:03test.txt 242 2011/11/23 17:37:37test.ps1 140 2011/12/2 18:47:35psdrive.html 2556 2011/11/30 16:04:00Powershell_Cmdlets.html 735892 2011/11/24 17:44:37ping.bat 63 2011/11/28 15:30:04name.html 7420 2011/11/24 17:37:28myscript 2011/11/29 18:21:28ls.html 434 2011/12/14 11:22:30LogoTestConfig.xml 186 2011/11/28 11:12:08function.ps1 21466 2011/11/29 19:23:58employee.xml 556 2011/11/25 11:20:33d.txt 0 2011/11/23 17:25:23c.txt 0 2011/11/23 17:25:23b.txt 0 2011/11/23 17:25:23alias.ps1 12060 2011/11/24 20:27:24alias 12060 2011/11/24 20:26:36ABC 2011/11/23 17:25:53a.txt 26384 2011/11/24 20:04:31a.html 67580 2011/11/24 18:30:13

首先列出當前目錄下的目錄和文件,然后根據文件名降序排列,再投影文件名,文件大小,文件的修改時間,轉換成Html格式,輸出到當前目錄的ls.html

面向對象的管道

上面的例子屬于面向對象的管道,每個命令的末尾可以使用新的命令對上個命令的結果做進一步處理,除非管道是以輸出命令結束的。就像Sort-Object一樣,對文件的列表進行排序,需要告訴它排序的關鍵字,按照升序還是降序。ls的返回值為一個數組,數組中的每一個元素都是一個對象,對象的每一個屬性都可以作為Sort-Object的排序關鍵字。但是排序時必須指定一個具體的關鍵字,因為Powershell所傳遞的對象可能有很多屬性。不像普通的文本,對象的信息都是結構化的,因此也使得Powershell的管道變得更加強大和方便。

轉換命令執行的結果為文本

在執行Powershell命令時,解釋器會默認在命令的結尾追加一個管道命令,Out-Default,這樣可以將原來的對象結果以文本的形式顯示在控制臺上,但是并沒有將結果進行轉換,所以可以繼續使用其它管道對對象的結果進行操作,但是一旦使用了諸如ConvertTo-Html這樣的命令后,就會將結果轉換成固定格式的純文本。

常用的對管道結果進一步處理的命令有:

Compare-Object: 比較兩組對象。
ConvertTo-Html: 將 Microsoft .NET Framework 對象轉換為可在 Web 瀏覽器中顯示的 HTML。
Export-Clixml: 創建對象的基于 XML 的表示形式并將其存儲在文件中。
Export-Csv: 將 Microsoft .NET Framework 對象轉換為一系列以逗號分隔的、長度可變的 (CSV) 字符串,并將這些字符串保存到
一個 CSV 文件中。
ForEach-Object: 針對每一組輸入對象執行操作。
Format-List: 將輸出的格式設置為屬性列表,其中每個屬性均各占一行顯示。
Format-Table: 將輸出的格式設置為表。
Format-Wide: 將對象的格式設置為只能顯示每個對象的一個屬性的寬表。
Get-Unique: 從排序列表返回唯一項目。
Group-Object: 指定的屬性包含相同值的組對象。
Import-Clixml: 導入 CLIXML 文件,并在 Windows PowerShell 中創建相應的對象。
Measure-Object: 計算對象的數字屬性以及字符串對象(如文本文件)中的字符數、單詞數和行數。
more: 對結果分屏顯示。
Out-File: 將輸出發送到文件。
Out-Null: 刪除輸出,不將其發送到控制臺。
Out-Printer: 將輸出發送到打印機。
Out-String: 將對象作為一列字符串發送到主機。
Select-Object: 選擇一個對象或一組對象的指定屬性。它還可以從對象的數組中選擇唯一對象,也可以從對象數組的開頭或末尾選
擇指定個數的對象。
Sort-Object: 按屬性值對象進行排序。
Tee-Object: 將命令輸出保存在文件或變量中,并將其顯示在控制臺中。
Where-Object: 創建控制哪些對象沿著命令管道傳遞的篩選器。

管道的處理模式

當我們把許多命名組合成一個管道時,可能會感興趣每一個命令的執行時是順序執行還是同時執行?通過管道處理結果實際上是實時的。這就是為什么存在兩個管道模式:
順序模式(較慢):在順序模式中管道中同一時間只執行一條命令,只有當前一條命令的所有執行完畢,才會把所有結果交付給下一條 命令。這種模式速度慢并且耗內存,因為必須需要很多次分配空間存儲中間結果。
流模式(較快):流模式會立即執行所有命令,同一時間可能在執行多條命令。前一條命令可能會產生多個結果,但是一旦產生其中一個結果,就會立即交付給下一條命令處理。這樣的流模式節省比較節省內存,可能管道的某個任務還在執行,但是已經有部分結果輸出了。減少了中間結果的保存。

管道命令的阻塞

可以使用Sort-Object對管道的結果進行排序,但是有時候排序可能導致整個操作系統阻塞,因為排序命令的的執行屬于順序模式,必須得上一條命令的結果全部完成,才能排序。
因此在使用這類命令時,要注意操作對象的大小,和它們需要的內存。例如這條命令:
Dir C: -recurse | Sort-Object
-recurse 選項是遞歸查詢子目錄,可想而知系統盤的文件和目錄有多大。這條命令一旦運行起來,需要等很長很長的時間,甚至可能導致系統崩潰,得重啟電腦。你可以在執行這條命令時,打開任務管理器查看Powershell進程的內存占用在以每秒種幾十兆的速率增加。
到底哪些命令可能系統阻塞,要視命令的實現方式以及處理的對象大小決定,例如Sort-object導致阻塞的原因肯定是由于技術實現上采用的是內排序,沒有使用外排序。但是象Out-Host -paging 這樣的命令屬于流出來模式,就一般不會導致系統阻塞。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品网站大全| 欧美日韩国产精品一区| 欧美性xxxx极品高清hd直播| 久99久在线视频| 亚洲乱码国产乱码精品精天堂| 国产欧美日韩免费| 国产v综合v亚洲欧美久久| 国产欧美日韩精品专区| 国产69精品99久久久久久宅男| 一区二区三区四区精品| 精品无人区乱码1区2区3区在线| 欧美大胆在线视频| www.精品av.com| 亚洲国产精品va在线看黑人| 日韩电影大片中文字幕| 中文字幕亚洲一区| 欧美性videos高清精品| 欧美激情网站在线观看| 亚洲成**性毛茸茸| 亚洲日本中文字幕| 久久不射热爱视频精品| 亚洲成人1234| 日韩a**站在线观看| 国产精品高清网站| 欧美视频二区36p| 国产成人av网| 久久成人av网站| 精品亚洲精品福利线在观看| 亚洲午夜精品久久久久久久久久久久| 亚洲精品91美女久久久久久久| 国产一级揄自揄精品视频| 91国内产香蕉| 久久精品国产一区二区电影| 国产精品jvid在线观看蜜臀| 国产综合在线视频| 日韩一区二区欧美| 日韩理论片久久| 高清日韩电视剧大全免费播放在线观看| 亚洲欧美成人精品| 久久999免费视频| 亚洲精品久久久久中文字幕欢迎你| 欧美成人激情图片网| 欧美日韩午夜剧场| 亚洲欧洲一区二区三区在线观看| 国产精品video| 欧美性猛交xxx| 国产精品美女免费视频| 亚洲成人av片| 欧美成人在线影院| 欧美性xxxx极品hd欧美风情| 欧美成人午夜剧场免费观看| 欧美视频专区一二在线观看| 欧美与欧洲交xxxx免费观看| 欧美在线观看网站| 久久99精品久久久久久噜噜| 欧美一乱一性一交一视频| 成人精品网站在线观看| 日韩av观看网址| 欧美精品在线视频观看| 亚洲欧美国产一区二区三区| 欧美在线精品免播放器视频| 精品一区精品二区| 久久噜噜噜精品国产亚洲综合| 久久久久久一区二区三区| 欧美日韩免费区域视频在线观看| 精品少妇一区二区30p| 欧美亚洲激情视频| 久久精品99久久香蕉国产色戒| 欧美午夜精品伦理| 热久久视久久精品18亚洲精品| 日韩国产精品视频| 日本欧美国产在线| 国产成人精品视频在线| 成人疯狂猛交xxx| 在线精品视频视频中文字幕| 亚洲激情 国产| 色综合久久久久久中文网| 国产精品久久久久秋霞鲁丝| 日韩av在线网| 国产精品999| 久久久久久久国产精品| 亚洲成在人线av| 91免费电影网站| 欧美一区二区三区精品电影| 国产精品69久久久久| 亚洲人成电影网站色| 欧美自拍视频在线| 粉嫩av一区二区三区免费野| 国产伦精品免费视频| 国产美女久久精品香蕉69| 成人福利在线视频| 亚洲日本欧美中文幕| 91亚洲一区精品| 久久99久国产精品黄毛片入口| 国产成人精品久久| 亚洲免费伊人电影在线观看av| 精品久久香蕉国产线看观看亚洲| 日本不卡免费高清视频| 91日本在线视频| 中文字幕亚洲精品| 日韩av快播网址| 国产精品久久久久久久美男| 国产精品男人爽免费视频1| 91精品国产九九九久久久亚洲| 亚洲女人被黑人巨大进入al| 国产成人精品一区| 亚洲国产成人av在线| 国产精品91久久久久久| 色妞色视频一区二区三区四区| 国产成人精品久久久| 亚洲国产日韩一区| 狠狠久久亚洲欧美专区| 久久精视频免费在线久久完整在线看| 欧美做爰性生交视频| 欧美激情久久久久久| 国产999在线观看| 精品久久久国产精品999| 日韩av网址在线| 国模gogo一区二区大胆私拍| 国产视频福利一区| 777国产偷窥盗摄精品视频| 91精品国产高清久久久久久久久| 日韩精品中文字幕视频在线| 久久成人精品电影| 欧美高清videos高潮hd| 欧美日韩加勒比精品一区| 久久影视电视剧凤归四时歌| 欧美巨大黑人极品精男| 亚洲精品有码在线| 裸体女人亚洲精品一区| 成人黄色av网站| 欧美做爰性生交视频| 亚洲女人天堂色在线7777| 欧美成人全部免费| 日韩欧美精品在线观看| 亚洲色图25p| 亚洲综合在线中文字幕| 日韩在线视频免费观看高清中文| 精品无人国产偷自产在线| 久久久免费av| 国产视频精品在线| 91在线高清视频| 国产成人高清激情视频在线观看| 日韩免费电影在线观看| 国产精品激情自拍| 在线观看日韩专区| 国产精品成人免费视频| 亚洲欧美自拍一区| 久久久久久久久久久网站| 日本精品视频网站| 国产亚洲精品一区二区| 国产精品视频久久久久| 亚洲欧美日韩在线高清直播| 日韩中文字幕免费看| 亚洲精品xxx| 久久精品成人动漫| 欧美人交a欧美精品| 国产精品美女主播在线观看纯欲| 国产视频一区在线| 亚洲性夜色噜噜噜7777| 亚洲欧美日韩精品久久亚洲区| 亚洲视频专区在线| 91精品国产乱码久久久久久久久| 亚洲一区二区三区视频|