Powershell 破坏管道并保留部分结果

Powershell 破坏管道并保留部分结果,powershell,Powershell,假设我在Powershell中有一些管道处理数据并保存输出。 e、 g 如果我启动此运行,然后按ctrl-c,$结果将为空。是否有办法在命令启动后停止该命令,并保留迄今为止生成的结果 我意识到我可以用管道连接到一个文件。但是我的管道已经在运行了。我相信这就是您想要的: 实际上,只需将-outvariable x附加到输出生成命令中 就你而言 $null = $data | ? {$_.Value -gt 20} | % {Invoke-EXE} -OutVariable results 这是

假设我在Powershell中有一些管道处理数据并保存输出。 e、 g

如果我启动此运行,然后按ctrl-c,$结果将为空。是否有办法在命令启动后停止该命令,并保留迄今为止生成的结果

我意识到我可以用管道连接到一个文件。但是我的管道已经在运行了。

我相信这就是您想要的:

实际上,只需将
-outvariable x
附加到输出生成命令中

就你而言

$null = $data | ? {$_.Value -gt 20} | % {Invoke-EXE} -OutVariable results

这是我的命令,但实际上是一个exe(不是powershell)。如果这改变了一切,我就错过了我的机会。更新我的问题我考虑过这一点,但我想这也会有同样的问题;然而事实并非如此,它在被打断时确实起作用。干得好我对你的帖子进行了编辑,因为我相信这更符合他的要求(在
$results
变量中填入所有已完成的结果)。将
-OutVariable
添加到
ForEach对象
中,允许它在一个变量中连续收集可用的输出。我相信您的回答是正确的,我本人对powershell还相当陌生,管道仍然经常让我感到困惑……我经常使用
-OutVariable
,尽管我承认我从来不知道
+
语法。
$null = $data | ? {$_.Value -gt 20} | % {Invoke-EXE} -OutVariable results