将文件内容通过管道传输到命令,并继续用户输入

将文件内容通过管道传输到命令,并继续用户输入

我可以将文件的内容(或任何内容)通过管道传输到任何命令,并且当文件结束时继续我的输入吗?

我正在考虑的命令需要从 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。它首先将的内容通过管道传输.\filecommand,然后从用户那里获取进一步的输入。

我写了一个更全面的版本,可以在这个要点

相关内容