如何在同一个项目上处理多个命令; 采取这个例子,我想显示两个文件名,最后写日期,但只有文件名显示为:
PS C:\Users\demo> ls *.zip | % { Write-Host $_.FullName } | % { Write-Host $_.LastTimeWrite }
C:\Users\demo\archive.zip
Run Code Online (Sandbox Code Playgroud)
首先,该FileInfo财产被称为LastWriteTime- 不是LastTimeWrite.
您可以使用格式字符串,例如:
ls *.zip | % { Write-Host ("{0} {1}" -f $_.FullName, $_.LastWriteTime) }
Run Code Online (Sandbox Code Playgroud)
或者使用分号分隔命令:
ls *.zip | % { Write-Host $_.FullName; Write-Host $_.LastWriteTime }
Run Code Online (Sandbox Code Playgroud)
如果是Write-Host,您也可以编写
ls *.zip | % { Write-Host $_.FullName $_.LastWriteTime }
Run Code Online (Sandbox Code Playgroud)
您的管道无法按预期工作的原因有两方面:
Write-Host将输出写入主机环境(即控制台),因此没有什么可以进入下一个管道步骤.如果您需要进一步处理结果,请使用Write-Output或Select-Object代替Write-Host.FileInfo对象转换为字符串.| 归档时间: |
|
| 查看次数: |
4043 次 |
| 最近记录: |