powershell - 如何同时捕获外部命令输出并将其打印到终端
问题描述
我可以从以下管道返回:
$OUTPUT = $(flutter build ios --release --no-codesign | tail -1)
我想从构建中获取最后一行并显示进度,例如
$OUTPUT = $(flutter build ios --release --no-codesign | out | tail -1)
其中假设的out
实用程序还将输出发送到终端。
你知道如何?
解决方案
注意:在类Unix平台上,js2010的优雅tee /dev/tty
方案是最简单的;除了在 Windows 上工作之外,以下解决方案可能对在 PowerShell 中逐行处理外部程序输出感兴趣。
PowerShell解决方案(假设您问题中的代码是 PowerShell [1]):
我不确定如何flutter
报告其进度,但以下可能有效:
如果一切都进入stdout:
$OUTPUT = flutter build ios --release --no-codesign | % {
Write-Host $_ # print to host (console)
$_ # send through pipeline
} | select -Last 1
注意:%
是 的内置别名ForEach-Object
,select
是Select-Object
.
如果进度消息发送到stderr:
$OUTPUT = flutter build ios --release --no-codesign 2>&1 | % {
Write-Host $_.ToString() # print to host (console)
if ($_ -is [string]) { $_ } # send only stdout through pipeline
} | select -Last 1
[1] 正如赋值的 LHS 中$
的变量名中的符号和
( )周围的空格所证明的那样,这两者在/ POSIX-like shells中都不会按预期工作。=
$OUTPUT =
bash
推荐阅读
- firebase - Firebase 授权移动应用域 (expo)
- kubernetes-helm - docker-entrypoint-initdb.d 中的脚本不会为 Mongodb Helm 图表部署
- python - 无法推断 CSV 文件的架构
- javascript - 我正在尝试创建一个私有变量。该函数应该返回私有变量“secret”的值,但事实并非如此。怎么了?
- python - 按列中的特定类别在熊猫数据框中排序
- flutter - 如何通过在颤动中点击地图一次显示多个标记?
- node.js - Node.js ssh2-sftp-client 错误:fastPut:服务器本地没有响应
- c++ - 为什么分配 c*=40 不改变 a 的值?
- python-3.x - 在 Keras 中,训练 Bi-Directional Long Short Term Memory (LSTM),具有三个以上的词嵌入、pos 标签和块标签
- python - Pip freeze 显示了一个奇怪的包版本