主頁(yè) > 知識(shí)庫(kù) > Windows Powershell導(dǎo)出管道結(jié)果

Windows Powershell導(dǎo)出管道結(jié)果

熱門(mén)標(biāo)簽:地圖標(biāo)注的圖案 電話機(jī)器人公司招聘 六寸地圖標(biāo)注點(diǎn)怎么刪除 騰訊地圖標(biāo)注中心怎么標(biāo)注 印臺(tái)區(qū)呼叫中心外呼系統(tǒng) 如何根據(jù)經(jīng)緯度百度地圖標(biāo)注 新鄭電銷(xiāo)機(jī)器人一個(gè)月多少錢(qián) 莫拉克電梯系統(tǒng)外呼怎么設(shè)置 萬(wàn)全縣地圖標(biāo)注app

可以將管道的結(jié)果轉(zhuǎn)換成文本輸出,默認(rèn)是Out-Default。可以通過(guò)Get-Command -verb out查看Powershell都有哪些輸出的命令。

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

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é)果

有的命令無(wú)論執(zhí)行成功或失敗都會(huì)有輸出,有時(shí)不需要這些輸出時(shí)可以使用 | Out-Null,這條命令的作用和 >$null 一樣。尤其在函數(shù)中使用比較多,因?yàn)槿绻麤](méi)有特別指明return 。Powershell函數(shù)會(huì)把輸出結(jié)果作為函數(shù)的返回值。為了避免這種麻煩,通常在管道后加一條命令Out-Null 或 >$null吸收輸出結(jié)果。

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

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

修改管道格式

之前討論過(guò),Powershell默認(rèn)會(huì)在每行命令的末尾追加一條Out-Default,Out-Default默認(rèn)包含了一條Out-Host,那是不是Out-Host就是英雄無(wú)用武之地了。事實(shí)上,可以通過(guò)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信息以列表形式輸出。

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

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

第二行使用了兩條命令,通過(guò)分號(hào)間隔。但是為什么Service信息會(huì)以列表顯示 呢?因?yàn)榻?jīng)過(guò)Powershell的解釋器處理,上面例子中的第二條命令會(huì)變成:
{ pwd;Get-Service} | Out-Default
Powershell在命令中沒(méi)有發(fā)現(xiàn)特別指定的版式信息,就會(huì)嘗試從第一條命令的第一個(gè)結(jié)果對(duì)象中尋找線索。并且把這種版式強(qiáng)加給緊接著的其它命令。
怎樣避免上述問(wèn)題,最好的辦法就是要明確指定。
pwd;Get-Service | Out-Host

強(qiáng)制以文本顯示

Powershell的文本轉(zhuǎn)換一般發(fā)生在管道的末尾,但是如果需要對(duì)文本處理可是強(qiáng)制轉(zhuǎn)換成文本。

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

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)出為文本文件看起來(lái)不規(guī)整,越讀起來(lái)也不方便。所以最好導(dǎo)出為Excel格式“csv”,這樣的文件默認(rèn)支持Microsft Excel程序打開(kāi),并處理。

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

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)出大同小異。

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

PS C:PowerShell> Get-Service | ConvertTo-Html -Title "ls result" | Out-File a.html
PS C:PowerShell> .a.html

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

標(biāo)簽:襄陽(yáng) 喀什 南昌 湘潭 臨汾 疫苗接種 汕頭 天水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Windows Powershell導(dǎo)出管道結(jié)果》,本文關(guān)鍵詞  Windows,Powershell,導(dǎo)出,管道,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Windows Powershell導(dǎo)出管道結(jié)果》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Windows Powershell導(dǎo)出管道結(jié)果的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章