以字符串而不是对象形式输出结果的命令:
ls | Out-String -Stream
Run Code Online (Sandbox Code Playgroud)
输出:
Directory: C:\MyPath\dir1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2022-01-22 5:34 PM 0 1.txt
-a--- 2022-01-22 5:34 PM 0 2.txt
-a--- 2022-01-22 5:34 PM 0 3.txt
Run Code Online (Sandbox Code Playgroud)
我尝试使用函数获得相同的结果:
function f {
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline,
ValueFromPipelineByPropertyName)]
$Content
)
process {
$Content | Out-String -Stream
}
}
ls | f
Run Code Online (Sandbox Code Playgroud)
但是,每个项目的输出都是分开的:
Directory: C:\MyPath\dir1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2022-01-22 5:34 PM 0 1.txt
Directory: C:\MyPath\dir1
Mode LastWriteTime Length Name
---- …Run Code Online (Sandbox Code Playgroud) powershell ×1