为什么哈希表格式会自动更改?

时间:2014-10-21 11:45:34

标签: powershell formatting hashtable powershell-v4.0

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

$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}`

或者,是否有不同的对象类型会阻止它发生?

1 个答案:

答案 0 :(得分:2)

在没有格式化cmdlet的情况下输出对象属性时,PowerShell会查看属性数以确定它是否将使用表或列表。根据我的经验,五个或更多属性自动格式化为一个列表,其中表格的自动格式更少。

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