简短版:为什么运行时Test-Connection
只提供一个结果-AsJob
?
详细版本:
当Test-Connection
(ping!) 命令在 Powershell 中运行(以管理员身份运行)时,它使用参数的默认4
值Count
。这给了我预期的结果(为清楚起见,删除了一些不相关的数据):
PS C:\Windows\system32> Test-Connection www.stackoverflow.com
Destination IPV4Address IPV6Address Bytes Time(ms)
----------- ----------- ----------- ----- --------
www.stackove... 64.34.119.12 {} 32 117
www.stackove... 64.34.119.12 {} 32 113
www.stackove... 64.34.119.12 {} 32 111
www.stackove... 64.34.119.12 {} 32 113
但是,当我使用-AsJob
标志运行它时,似乎(运行时Receive-Job
,等待几秒钟后)Count
只有 1,但我希望它是 4,并获得与上述类似的结果。相反,我得到了这个:
PS C:\Windows\system32> Test-Connection www.stackoverflow.com -AsJob
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 Job1 Running False . Test-Connection
PS C:\Windows\system32> Receive-Job 1
Destination IPV4Address IPV6Address Bytes Time(ms)
----------- ----------- ----------- ----- --------
www.stackove... 64.34.119.12 {} 32 113
AsJob
变体始终返回一行,即使您为 提供特定值也是如此Count
。
我的 Google-fu 和Get-Help-fu似乎还不够。有人可以解释一下这里发生了什么,最好用一些指针自己如何以及在哪里找到这些信息(例如,哪些帮助文件或来源解释了这种行为)?