通过管道将 CMD 输出传递给 Powershell [重复]

Posted

技术标签:

【中文标题】通过管道将 CMD 输出传递给 Powershell [重复]【英文标题】:Pass CMD output to Powershell via pipeline [duplicate] 【发布时间】:2021-11-27 18:56:17 【问题描述】:

想知道如何将控制台应用程序输出从 cmd.exe 传递到 Powershell,以便在没有临时文件的情况下进行进一步操作。

例子:

cmd /c SET | powershell -command Write-Host -f Green $_

期望:绿色 SET 的输出。

【问题讨论】:

等等,你是在 PowerShell 还是 cmd 中运行这个? -Command "$input | Write-Host -f Green"。请注意,这个特定示例当然是人为设计的,因为 PowerShell 可以简单地读取环境本身并按照SET 的方式对其进行格式化,如果您愿意的话 (dir env:\ |% $_.name + "=" + $_.value )。 不存在关于着色本身或环境变量的问题。这是关于将数据传递到 powershell 以进行进一步处理的方法。无论如何,这个问题得到了回答。谢谢大家。 【参考方案1】:

如果你想从一个可执行文件从内部 powershell 输出,只需直接通过管道输出到一个函数:

cmd /c SET |Write-Host -ForegroundColor Green

如果你想从 cmd.exe 通过管道输出到 powershell.exe:

SET |powershell -Command "$input |Write-Host -ForegroundColor Green"

或者,直接从 PowerShell 的 env: 驱动器获取环境变量,无需调用 cmd

Get-ChildItem env: |Out-String |Write-Host -ForegroundColor Green

【讨论】:

以上是关于通过管道将 CMD 输出传递给 Powershell [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从CMD管道到PowerShell

通过 c 中的管道而不是文件将数据数组传递给 gnuplot

如何通过管道将子进程调用传递给文本文件?

进程间通信:管道

通过回声管道将python变量(字符串)传递给bash命令[重复]

使c ++程序以交互方式将输入输出传递给Windows命令提示符