如果我将一堆命令链接在一起,如:
$time_elapsed = (Measure-Command{Import-VM -Copy -GenerateNewId -Path $Path_name | Out-Host}).TotalMinutes
哪个命令的状态是$?持有?
是Measure-Command吗?进口-VM?或Measure-Command.TotalMinutes?
答案 0 :(得分:1)
查看help about_Automatic_Variables
下的文档$?
变量的定义如下:
包含上次操作的执行状态。如果上一次操作成功则包含TRUE,如果失败则包含FALSE。
那么PowerShell中的操作是什么?我无法找到明确的答案 - 所以我将使用非官方的答案,直到可以澄清:操作是一个被调用的cmdlet或一个表达式的评估,例如运算符的使用和文字值。 / p>
考虑到这一点,我在你的陈述中至少计算了四个操作:
这四个中的任何一个都可能导致当前语句终止 - 希望正常但当然任何可能会抛出异常。考虑到这一点,我不认为你总能确定一个陈述的哪个操作导致$?
中的值被设置。