我可以将文件的内容(或任何内容)通过管道传输到任何命令,并且当文件结束时继续我的输入吗?
我正在考虑的命令需要从 stdin 输入多行。我希望从文件中提供前几行,然后继续在终端中自己写入输入。
答案1
我最终为我想要的东西编写了一个脚本。以下是它的精简版本:
# Named Join-With
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline = $true)]
[AllowEmptyString()]
[String]
$OriginalInput
)
process {
Write-Output $OriginalInput
}
end {
while ($true) {
Read-Host | Write-Output
}
}
下面是一个使用示例Get-Content .\file | Join-With | command
。它首先将的内容通过管道传输.\file
到command
,然后从用户那里获取进一步的输入。
我写了一个更全面的版本,可以在这个要点。