首页 > 解决方案 > 将 Write-Host 的输出通过管道传输到其他命令

问题描述

我有这个脚本,它可以根据某些自助餐厅查找文件并使用 Write-Host 编写它们的路径。现在,我想通过管道传输所有这些文件路径,并对这些文件进行处理。

基本上第一个脚本是这样的:

FindFiles.ps1:
Write-Host "C:\SomeDir\file1.txt"
Write-Host "D:\OtherDir\file2.txt"

现在我想做这样的事情:

FindFiles.ps1 | foreach { Copy-Item $_ c:\backup\ }

但显然这不起作用。(实际上我想做一些比复制文件夹更复杂的事情,但这是另一个问题:-))

标签: powershellpipewrite-host

解决方案


Write-Host特别是只打印到控制台,它不会“返回”任何东西。

如果您将脚本更改为仅输出字符串,它将起作用。

从:

Write-Host "C:\SomeDir\file1.txt"
Write-Host "D:\OtherDir\file2.txt"

到:

"C:\SomeDir\file1.txt"
"D:\OtherDir\file2.txt"

推荐阅读