You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不等待首个命令执行完毕的情况下实现管道传输?

如何让PowerShell异步转发持续运行命令的管道输出?

我尝试将日志输出通过管道传输至另一个脚本处理。PowerShell存在这样的行为:它会等待首个命令执行完毕后,才将输出发送至第二个命令。

比如下面的命令可以正常工作(脚本能收到"hi"),因为echo命令很快就执行完了:

echo "hi" | python script.py

但在下面的场景中(caddy是不会终止运行的Web服务器),caddy的标准输出永远无法到达脚本的标准输入:

caddy run | python script.py

有没有办法实现异步转发首个命令的输出到第二个命令,不用等首个命令执行完?


最小复现示例

output.py(持续输出的脚本)

from time import sleep

while True:
    print("SENDING")
    sleep(1)

onetime.py(单次输出的脚本)

print("SENDING")

input.py(接收输入的脚本)

import sys

while True:
    for line in sys.stdin:
        print(f"Received: {line}")

以下命令可以正常工作(标准输出会打印Received: SENDING):

python onetime.py | python input.py

以下命令无法正常工作(没有任何输出):

python output.py | python input.py

内容的提问来源于stack exchange,提问作者Matija Sirk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:23:12