powershell-5.0 - Select-Object -Property 参数防止在循环中获取对象
问题描述
请帮助我理解为什么我不能在循环中Select-Object
使用参数输出对象。-Property
这是示例:
$GPjob = Start-Job -ScriptBlock {Get-Process | Select-Object -First 1}
for ($i = 0 ; $i -lt 200000 ; $i++) {
if (($GPjob.State -eq 'Completed') -and ($GPjob.HasMoreData)) {
"Step 1: $(Get-Date) : `$i=$i"
Receive-Job $GPjob | Select-Object -Property Name
"Step 2: $(Get-Date) : `$i=$i"
}
}
步骤 1和步骤 2 行应在其中一个循环Receive-Job
内一一执行。$i
所以我应该一次看到所有三个输出。Receive-Job
但实际上,直到整个循环结束,我才看到步骤 2 的输出。
但是,如果我不使用-Property
参数 for Receive-Job
,一切都会按预期进行:我会同时看到所有三个输出。
解决方案
这种方式出来得更快,但我无法解释为什么。也许这就是 Out-Default 的工作方式。我用 &{ for () } 和 foreach-object 得到了相同的结果。在ise 调试器中,如果我在receive-job 行上设置断点,则在我越过“Step 2”行后立即输出输出。
Receive-Job $GPjob | Select-Object -ExpandProperty Name
推荐阅读
- jquery - 折叠切换时删除类
- c# - C# WinForms 使用 FlashLight 内置到运行 Windows 10 Professional x64 的移动设备中
- jmodelica - PyFMI 参数估计和处理不同于默认的固定模型参数
- javascript - 三JS。将节点添加到组
- cloud - 什么是服务网格?
- javascript - 将 Python 枚举转换为 Javascript
- python - Scrapy Bestbuy不提取数据
- python - 什么是代码库子包导入?
- javascript - 检查 document.GetElementById("").value 是否不包含 null
- java - 无法连接 http://repo.maven.apache.org/maven2/myProject