最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows Powershell使用管道

 更新時間:2014年09月18日 15:55:04   投稿:hebedich  
在Windows PowerShell中到處都會用到管道。盡管在屏幕上會看到文本,但Windows PowerShell并不通過管道在命令之間傳遞文本。它實際上通過管道傳遞對象。用于管道的表示法與其他shell中所使用的表示法十分類似,因此乍一看可能不會明顯察覺到PowerShell引入了新功能

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

PS> ls | Sort-Object -Descending Name | Select-Object Name,Length,LastWriteTime | ConvertTo-Html | Out-File ls.html

PS> Get-Content .ls.html

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

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

面向對象的管道

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

轉換命令執(zhí)行的結果為文本

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

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

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

管道的處理模式

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

管道命令的阻塞

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

相關文章

  • PowerShell腳本trap語句捕獲異常寫法實例

    PowerShell腳本trap語句捕獲異常寫法實例

    這篇文章主要介紹了PowerShell腳本trap語句捕獲異常寫法實例,包含幾個代碼實例,需要的朋友可以參考下
    2014-07-07
  • PowerShell函數(shù)參數(shù)用星號隱藏的方法

    PowerShell函數(shù)參數(shù)用星號隱藏的方法

    這篇文章主要介紹了PowerShell函數(shù)參數(shù)用星號隱藏的方法,這是一個很實用的技巧,比如在一些需要輸入密碼的情況,需要的朋友可以參考下
    2014-07-07
  • PowerShell 腳本中的密碼保存的方法

    PowerShell 腳本中的密碼保存的方法

    這篇文章主要介紹了PowerShell 腳本中的密碼保存的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • PowerShell管理Win Server 2008 R2

    PowerShell管理Win Server 2008 R2

    在Windows Serve 2008 R2中,一個重要改進就是PowerShell版本升級為2.0。Win 2008 R2包括一系列新的服務器管理界面,這些均建立在PowerShell 2.0之上。它新增了240個cmdlets命令集,新的PowerShell圖形用戶界面也增添了開發(fā)功能,從而用戶能更簡單創(chuàng)建自己的命令行。
    2015-09-09
  • Python中調用PowerShell、遠程執(zhí)行bat文件實例

    Python中調用PowerShell、遠程執(zhí)行bat文件實例

    這篇文章主要介紹了Python中調用PowerShell、遠程執(zhí)行bat文件實例,本文給出了python調用本地powershell方法、python遠程調用bat執(zhí)行命令方法,需要的朋友可以參考下
    2015-01-01
  • 了解Powershell中的Exit函數(shù)

    了解Powershell中的Exit函數(shù)

    這篇文章主要介紹了了解Powershell中的Exit函數(shù),對exit的函數(shù)使用技巧上做了小結,并用實例說明了exit函數(shù)的使用,需要的朋友可以參考下
    2014-07-07
  • Powershell腳本中包含文件資源的例子

    Powershell腳本中包含文件資源的例子

    這篇文章主要介紹了Powershell腳本中包含文件資源的例子,本文直接給出示例代碼,本文腳本代碼適應Powershell3.0及以后版本,需要的朋友可以參考下
    2015-03-03
  • PowerShell調用Web測試工具Selenium實例

    PowerShell調用Web測試工具Selenium實例

    這篇文章主要介紹了PowerShell調用Web測試工具Selenium實例,又一篇PowerShell操作網(wǎng)頁的例子,需要的朋友可以參考下
    2014-07-07
  • PowerShell入門教程之編寫和使用腳本模塊實例

    PowerShell入門教程之編寫和使用腳本模塊實例

    這篇文章主要介紹了PowerShell入門教程之編寫和使用腳本模塊實例,本文講解了模塊、腳本模塊、編寫腳本模塊、模塊安裝路徑、模塊文件夾等內容,需要的朋友可以參考下
    2014-10-10
  • 用PowerShell代替批處理吧!

    用PowerShell代替批處理吧!

    這篇文章主要介紹了用PowerShell代替批處理吧!本文講解了批處理文件的歷史、Windows NT 和 Cmd.exe、Windows Script 主機、進入 Windows PowerShell、為什么是時候停止寫批處理了等內容,需要的朋友可以參考下
    2015-03-03

最新評論

凤台县| 兴和县| 花莲市| 钟祥市| 石嘴山市| 含山县| 灌阳县| 荔波县| 托里县| 依兰县| 松江区| 武城县| 韶关市| 若尔盖县| 大安市| 新民市| 门头沟区| 岢岚县| 陵水| 科技| 巴青县| 册亨县| 荥阳市| 化德县| 晋宁县| 民权县| 永泰县| 车险| 隆安县| 德州市| 交城县| 余庆县| 肇州县| 普定县| 卢氏县| 乌苏市| 乐至县| 通榆县| 襄城县| 台北县| 麻城市|