$somevar = Get-Process -OutVariable var | Select-Object -First 5

在这种情况下,为什么$ var = $ somevar(都只有前5个对象)?为什么-OutVariable无法将正确的输出保存到$ var?我糊涂了。
C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.14393.206
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.14393.206
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

C:\>  [System.Environment]::OSVersion.Version

Major  Minor  Build  Revision
-----  -----  -----  --------
10     0      14393  0

最佳答案

In Powershell 3.0 optimization was included with Select-Object。您正在看到一个功能



使用-Wait取消此行为。这样做时,该命令花费的时间更长,但是它允许您发生预期的行为。

如果对任何人都重要,则在优化功能前提条件上有一个脚注警告:

关于powershell - 当将Select-Object与First参数一起使用时,OutVariable包含不正确的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40720821/

10-11 09:00