Windows Powershell導(dǎo)出管道結(jié)果
可以將管道的結(jié)果轉(zhuǎn)換成文本輸出,默認(rèn)是Out-Default??梢酝ㄟ^Get-Command -verb out查看Powershell都有哪些輸出的命令。
PS C:PowerShell> get-command -Verb out
CommandType Name Definition
----------- ---- ----------
Cmdlet Out-Default Out-Default [-InputObject ]
Cmdlet Out-File Out-File [-FilePath] [[-Encoding]
Cmdlet Out-GridView Out-GridView [-InputObject ]
Cmdlet Out-Host Out-Host [-Paging] [-InputObject ]
Cmdlet Out-Null Out-Null [-InputObject ] [-Verbose]
Cmdlet Out-Printer Out-Printer [[-Name] ] [-InputObject
Cmdlet Out-String Out-String [-Stream] [-Width ]
Out-Default 將輸出發(fā)送到默認(rèn)的格式化程序和默認(rèn)的輸出 cmdlet。
Out-File 將輸出發(fā)送到文件。
Out-GridView 將輸出發(fā)送到單獨(dú)窗口中的交互表。
Out-Host 將輸出發(fā)送到命令行。
Out-Null 刪除輸出,不將其發(fā)送到控制臺(tái)。
Out-Printer 將輸出發(fā)送到打印機(jī)。
Out-String 將對(duì)象作為一列字符串發(fā)送到主機(jī)。
吸收輸出結(jié)果
有的命令無論執(zhí)行成功或失敗都會(huì)有輸出,有時(shí)不需要這些輸出時(shí)可以使用 | Out-Null,這條命令的作用和 >$null 一樣。尤其在函數(shù)中使用比較多,因?yàn)槿绻麤]有特別指明return 。Powershell函數(shù)會(huì)把輸出結(jié)果作為函數(shù)的返回值。為了避免這種麻煩,通常在管道后加一條命令Out-Null 或 >$null吸收輸出結(jié)果。
PS C:PowerShell> md ABC
目錄: C:PowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2011/12/19 17:05 ABC
PS C:PowerShell> md ABD >$null
PS C:PowerShell> md ABE | Out-Null
修改管道格式
之前討論過,Powershell默認(rèn)會(huì)在每行命令的末尾追加一條Out-Default,Out-Default默認(rèn)包含了一條Out-Host,那是不是Out-Host就是英雄無用武之地了。事實(shí)上,可以通過Out-Host控制管道的版式。
Powershell不但會(huì)自動(dòng)把管道結(jié)果發(fā)送到輸出設(shè)備上,而且還會(huì)把管道結(jié)果轉(zhuǎn)換成可讀的文本。這個(gè)自動(dòng)轉(zhuǎn)換與Format-Table有點(diǎn)像。但是完全依靠自動(dòng)轉(zhuǎn)換有時(shí)會(huì)碰到很奇怪的輸出結(jié)果。
例如當(dāng)單獨(dú)使用Get-Service時(shí),結(jié)果會(huì)以表格的形式輸出,但是使用pwd;Get-Service時(shí)Service信息以列表形式輸出。
PS C:PowerShell> Get-Service
Status Name DisplayName
------ ---- -----------
Running AdobeARMservice Adobe Acrobat Update Service
Stopped AeLookupSvc Application Experience
Stopped ALG Application Layer Gateway Service
PS C:PowerShell> pwd;Get-Service
Path
----
C:PowerShell
Status : Stopped
Name : THREADORDER
DisplayName : Thread Ordering Server
Status : Running
Name : TrkWks
DisplayName : Distributed Link Tracking Client
第二行使用了兩條命令,通過分號(hào)間隔。但是為什么Service信息會(huì)以列表顯示 呢?因?yàn)榻?jīng)過Powershell的解釋器處理,上面例子中的第二條命令會(huì)變成:
& { pwd;Get-Service} | Out-Default
Powershell在命令中沒有發(fā)現(xiàn)特別指定的版式信息,就會(huì)嘗試從第一條命令的第一個(gè)結(jié)果對(duì)象中尋找線索。并且把這種版式強(qiáng)加給緊接著的其它命令。
怎樣避免上述問題,最好的辦法就是要明確指定。
pwd;Get-Service | Out-Host
強(qiáng)制以文本顯示
Powershell的文本轉(zhuǎn)換一般發(fā)生在管道的末尾,但是如果需要對(duì)文本處理可是強(qiáng)制轉(zhuǎn)換成文本。
PS C:PowerShell> ls . -Recurse | Out-String
目錄: C:PowerShell
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2011/12/19 17:05 ABC
d---- 2011/12/19 17:06 ABD
d---- 2011/12/19 17:06 ABE
d---- 2011/11/29 18:21 myscript
-a--- 2011/12/19 11:31 500 a.html
PS C:PowerShell> (ls | Out-String -Stream).gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
Excel導(dǎo)出對(duì)象
管道結(jié)果導(dǎo)出為文本文件看起來不規(guī)整,越讀起來也不方便。所以最好導(dǎo)出為Excel格式“csv”,這樣的文件默認(rèn)支持Microsft Excel程序打開,并處理。
PS C:PowerShell> Get-Service | Export-Csv a.csv
PS C:PowerShell> .a.csv
使用這些導(dǎo)出命令時(shí),切忌不要在管道中使用Format-Table,否則導(dǎo)出的結(jié)果不正常,自己可以測(cè)試。那怎樣選擇屬性呢?可是使用Select-Object。
Html導(dǎo)出對(duì)象
Html導(dǎo)出對(duì)象和Excel導(dǎo)出大同小異。
PS C:PowerShell> Get-Service | ConvertTo-Html -Title "ls result" | Out-File a.html
PS C:PowerShell> .a.html
相關(guān)文章
PowerShell Contains函數(shù)查找字符串實(shí)例
這篇文章主要介紹了PowerShell Contains函數(shù)查找字符串實(shí)例,Contains函數(shù)的作用是查詢一個(gè)字符串中是否存在另一個(gè)字符串,需要的朋友可以參考下2014-08-08
Powershell小技巧之非相同域或信任域也能遠(yuǎn)程
這篇文章主要介紹了使用Powershell在非相同域或信任域也能遠(yuǎn)程的方法以及如何設(shè)置powershell遠(yuǎn)程處理的方法,需要的朋友可以參考下2014-10-10
PowerShell函數(shù)中的開關(guān)參數(shù)介紹和創(chuàng)建實(shí)例
這篇文章主要介紹了PowerShell函數(shù)中的開關(guān)參數(shù)介紹和創(chuàng)建實(shí)例,開關(guān)參數(shù)顧名思義就是起到一個(gè)開關(guān)作用,需要的朋友可以參考下2014-07-07
PowerShell查看Windows功能選項(xiàng)的方法
這篇文章主要介紹了PowerShell查看Windows功能選項(xiàng),也就就是在PowerShell中獲取Windows功能里的選項(xiàng)設(shè)置,需要的朋友可以參考下2014-11-11
PowerShell小技巧之定時(shí)記錄操作系統(tǒng)行為
這篇文章主要介紹了使用PowerShell定時(shí)記錄操作系統(tǒng)行為的小技巧,需要的朋友可以參考下2014-10-10
PowerShell入門教程之快速學(xué)習(xí)PowerShell的幾個(gè)方法
這篇文章主要介紹了PowerShell入門教程之快速學(xué)習(xí)PowerShell的幾個(gè)方法,本文提出了3種快速學(xué)習(xí)PowerShell的方法,需要的朋友可以參考下2014-10-10
PowerShell中使用Out-String命令把對(duì)象轉(zhuǎn)換成字符串輸出的例子
這篇文章主要介紹了PowerShell中使用Out-String命令把對(duì)象轉(zhuǎn)換成字符串輸出的例子,即把對(duì)象轉(zhuǎn)為字符串的方法,需要的朋友可以參考下2014-08-08
Windows Powershell導(dǎo)出管道結(jié)果
本文主要講訴了PowerShell的輸出命令詳細(xì)解釋,以及導(dǎo)出管道結(jié)果的部分示例,非常有用,有需要的朋友可以參考下2014-09-09
Powershell展開對(duì)象數(shù)據(jù)結(jié)構(gòu)并以JSON格式輸出
這篇文章主要介紹了Powershell展開對(duì)象數(shù)據(jù)結(jié)構(gòu)并以JSON格式輸出,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03

