1

我想知道为什么在下面的代码中从哈希表的“NextRun”属性中删除注释标签会导致默认格式从表切换到列表。

$a=Get-ScheduledTask|sort state`
$b=$a|Get-ScheduledTaskInfo`

for ($i=0; $i -lt $a.Count;$i+=1)`

    {$props=@{'Name'       =$a[$i].TaskName;
              'Description'=$a[$i].description;
              'State'      =$a[$i].state;
             #'NextRun'    =$b[$i].nextruntime;
              'LastRun'    =$b[$i].lastruntime}
$obj = New-Object -TypeName PSOBject -Property $props
$obj}`

或者,是否有不同的对象类型可以防止它发生?

4

1 回答 1

2

在输出没有格式化 cmdlet 的对象属性时,PowerShell 会查看属性的数量以确定它是要使用表还是列表。根据我的经验,五个或更多属性会自动格式化为列表,而更少的属性会自动格式化为表格。

在这种情况下,您需要使用格式化 cmdlet 来影响输出格式,或使用输出较少的属性来更改自动格式。

于 2014-10-21T12:58:49.003 回答