我正在努力解决问题,而这个深夜我无处可去。命令docker ps -a
给出以下输出。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21cf52afa3d0 mysql:5.7 "/entrypoint.sh mysql" Less than a second ago Up 1 seconds 0.0.0.0:3307->3306/tcp irrelevant-name
073795442e02 mysql:5.7 "/entrypoint.sh mysql" Less than a second ago Created someother-mysql
cb1952b0e5ed mysql:5.7 "/entrypoint.sh mysql" 3 minutes ago Up 4 minutes 0.0.0.0:3306->3306/tcp heist-mysql
我想要做的是计算包含-mysql
的行数,并将其存储在变量中(在上面的例子中,值为2
),以便稍后我可以使用它。
我已经看到了一些关于Select-String
的事情,但到目前为止我没有抛出任何东西。我尝试了docker ps -a | Select-String -Pattern ("*-mysql")
之类的东西,但到目前为止,一切都给了我一个错误。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
如果docker
命令的结果解析类似于Get-Content
,请尝试以下操作:
(docker ps -a | Select-String -Pattern "-MySQL" | Measure-Object).Count
答案 1 :(得分:0)
所有PowerShell命令都会生成对象。如果您不将对象存储在变量中或将其传递给另一个命令,PowerShell会在将对象显示给您之前将其转换为文本表示形式。 Select-String似乎不适用于从MappedByteBuffer
命令返回的对象类型。
尝试docker ps