我最近升级到Windows 10,并且在运行刀命令时我注意到一个非常奇怪/恼人的问题.
当我在powershell控制台中运行它时:
$nodes = knife node list
Run Code Online (Sandbox Code Playgroud)
的价值$nodes就是$null和我所有的节点都在控制台窗口中列出,而不是被捕获并存储在$nodes变量.当我从Powershell ISE运行相同的命令时,它按预期运行,其中$nodes包含我的节点列表的值.
我尝试了几种变体,都有相同的结果......
$nodes = & knife node list
$nodes = Invoke-Expression -Command 'knife node list'
$nodes = $(Invoke-Expression -Command 'knife node list')
$nodes = & knife node list 2>&1
$nodes = & knife node list 3>&1
$nodes = & knife node list 4>&1
Run Code Online (Sandbox Code Playgroud)
我的powershell控制台会话无法捕获来自ruby解释器的输出但PowerShell ise会话可以发生什么!?
Name Value
---- -----
PSVersion 5.0.10586.122
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.122
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion …Run Code Online (Sandbox Code Playgroud)