PowerShell中如何将docker命令(如docker ps)的输出存入变量
PowerShell中将Docker命令输出存入变量的正确方案
你之前写法的问题在于Receive-Output不是捕获外部命令输出的标准用法,额外拼接该管道命令会导致赋值失败。
基础用法
普通场景下直接对变量赋值即可,无需额外管道处理:
# 将docker ps的输出直接存入变量 $var = docker ps # 打印变量验证结果 Write-Output $var
此时如果docker ps返回多行结果,$var默认是字符串数组,每个元素对应输出的一行内容。
特殊场景适配
- 如需将所有输出合并为单个完整字符串,可搭配
Out-String使用:$var = docker ps | Out-String - 如需同时捕获命令的标准输出和错误输出(比如执行异常时的报错信息也存入变量),可添加输出重定向:
$var = docker ps 2>&1 - 如需获取结构化输出方便后续逻辑处理,可使用Docker原生的JSON输出格式配合PowerShell解析:
此时$var = docker ps --format '{{json .}}' | ConvertFrom-Json$var为结构化对象,可直接通过.Names、.Image等属性获取对应容器的信息。
内容的提问来源于stack exchange,提问作者Peter PitLock
相关产品推荐
相关产品推荐

