gpt4 book ai didi

powershell - Powershell 中的多个管道

转载 作者:行者123 更新时间:2023-12-05 00:58:18 25 4
gpt4 key购买 nike

如何处理同一项目的多个命令;举个例子,我想同时显示文件名和最后写入日期,但只显示文件名:

PS C:\Users\demo> ls *.zip | % { Write-Host $_.FullName }  | % { Write-Host $_.LastTimeWrite }
C:\Users\demo\archive.zip

最佳答案

首先,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-OutputSelect-Object 而不是 Write-Host
  • 即使您没有将输出写入主机环境,管道中的下一步也不会有与当前步骤相同的输入,因为您正在转换 FileInfo在当前步骤中将对象转换为字符串。

关于powershell - Powershell 中的多个管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32837486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com