麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PowerShell > 正文

Windows Powershell導出管道結果

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

可以將管道的結果轉換成文本輸出,默認是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 將輸出發送到默認的格式化程序和默認的輸出 cmdlet。
Out-File 將輸出發送到文件。
Out-GridView 將輸出發送到單獨窗口中的交互表。
Out-Host 將輸出發送到命令行。
Out-Null 刪除輸出,不將其發送到控制臺。
Out-Printer 將輸出發送到打印機。
Out-String 將對象作為一列字符串發送到主機。

 

吸收輸出結果

有的命令無論執行成功或失敗都會有輸出,有時不需要這些輸出時可以使用 | Out-Null,這條命令的作用和 >$null 一樣。尤其在函數中使用比較多,因為如果沒有特別指明return 。Powershell函數會把輸出結果作為函數的返回值。為了避免這種麻煩,通常在管道后加一條命令Out-Null 或 >$null吸收輸出結果。

 

復制代碼 代碼如下:

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默認會在每行命令的末尾追加一條Out-Default,Out-Default默認包含了一條Out-Host,那是不是Out-Host就是英雄無用武之地了。事實上,可以通過Out-Host控制管道的版式。
Powershell不但會自動把管道結果發送到輸出設備上,而且還會把管道結果轉換成可讀的文本。這個自動轉換與Format-Table有點像。但是完全依靠自動轉換有時會碰到很奇怪的輸出結果。
例如當單獨使用Get-Service時,結果會以表格的形式輸出,但是使用pwd;Get-Service時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

 

第二行使用了兩條命令,通過分號間隔。但是為什么Service信息會以列表顯示 呢?因為經過Powershell的解釋器處理,上面例子中的第二條命令會變成:
& { pwd;Get-Service} | Out-Default
Powershell在命令中沒有發現特別指定的版式信息,就會嘗試從第一條命令的第一個結果對象中尋找線索。并且把這種版式強加給緊接著的其它命令。
怎樣避免上述問題,最好的辦法就是要明確指定。
pwd;Get-Service | Out-Host

強制以文本顯示

Powershell的文本轉換一般發生在管道的末尾,但是如果需要對文本處理可是強制轉換成文本。

 

復制代碼 代碼如下:

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導出對象

管道結果導出為文本文件看起來不規整,越讀起來也不方便。所以最好導出為Excel格式“csv”,這樣的文件默認支持Microsft Excel程序打開,并處理。

 

復制代碼 代碼如下:

PS C:PowerShell> Get-Service | Export-Csv a.csv
PS C:PowerShell> .a.csv

 

使用這些導出命令時,切忌不要在管道中使用Format-Table,否則導出的結果不正常,自己可以測試。那怎樣選擇屬性呢?可是使用Select-Object。

Html導出對象

Html導出對象和Excel導出大同小異。

 

復制代碼 代碼如下:

PS C:PowerShell> Get-Service | ConvertTo-Html -Title "ls result" | Out-File a.html
PS C:PowerShell> .a.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产免费www | 国产成人在线观看网站 | 免费专区 - 91爱爱 | 亚洲第一页综合 | 91九色视频 | 国产毛片aaa一区二区三区视频 | 久久久久九九九女人毛片 | 蜜桃av鲁一鲁一鲁一鲁 | 久草导航| 久久精品在线免费观看 | 成人精品一区二区 | 日本中文字幕高清 | 污黄视频在线观看 | 国产毛片自拍 | 免费观看一级黄色片 | 嫩嫩的freehdxxx | 福利在线小视频 | 午夜天堂在线视频 | 九九热九九热 | 黄色网址进入 | 国产一区二区在线免费观看 | 91av在线免费 | 99视频有精品视频高清 | 国产精品视频2021 | 99综合视频 | 欧美日韩在线影院 | 久久精品无码一区二区三区 | 国产伦久视频免费观看视频 | 黄色网址电影 | 日韩精品一区二区三区中文 | 成人午夜视屏 | 91av在线免费观看 | 毛片在线视频免费观看 | 久久久成人精品视频 | 九九热九九 | 黄色片网站在线免费观看 | 亚洲精品 欧美 | 作爱在线观看 | 久久国产亚洲视频 | 精品国产一区二区三区蜜殿 | 亚洲第一综合色 |