可以將管道的結果轉換成文本輸出,默認是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有點像。但是完全依靠自動轉換有時會碰到很奇怪的輸出結果。
新聞熱點
疑難解答