如何在同一个项目上处理多个命令;以这个例子为例,我想显示两个文件名和最后一个写日期,但只显示文件名:
PS C:\Users\demo> ls *.zip | % { Write-Host $_.FullName } | % { Write-Host $_.LastTimeWrite }
C:\Users\demo\archive.zip
答案 0 :(得分:5)
首先,FileInfo
属性称为LastWriteTime
- 而不是LastTimeWrite
。
您可以使用格式字符串,例如:
ls *.zip | % { Write-Host ("{0} {1}" -f $_.FullName, $_.LastWriteTime) }
或者您使用分号分隔命令:
ls *.zip | % { Write-Host $_.FullName; Write-Host $_.LastWriteTime }
如果是Write-Host,您也可以写
ls *.zip | % { Write-Host $_.FullName $_.LastWriteTime }
您的管道无法按预期工作的原因有两方面:
Write-Host
将输出写入主机环境(即控制台),因此没有什么可以进入下一个管道步骤。如果您需要进一步处理结果,请使用Write-Output
或Select-Object
代替Write-Host
。