Powershell:右对齐格式 - 表格格式的Select-Object中的列值

Dav*_*.ca 6 powershell

我有几个列的数组值$ outData.我不确定我如何对齐某些列?

$outData | Select-Object `
      Name `
      @{Name="Freespace(byte)"; Expression={"{0:N0}" -f $_.FreeSpace}}, '
      .... # other colums `
 | Format-Table -AutoSize
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,当我尝试将freespace列的align用于右侧时:

      @{Name="Freespace(byte)"; Expression={"{0:N0}" -f $_.FreeSpace}; align="right"}, '
Run Code Online (Sandbox Code Playgroud)

我收到错误消息"不支持指定的方法".不确定是否有任何方法可以将值对齐?

Kei*_*ill 6

align指令位于为Format-Table cmdlet指定的散列表中.IOW,align不是Select-Object支持的哈希表条目.因此,请确保通过传递给Format-Table的哈希表中的哈希表进行格式化,例如:

gps | select name,pm | format-table @{n='Name';e={$_.Name};align='right'},PM
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下:

$outData | Format-Table Name,
                  @{n="Freespace(byte)";e={"{0:N0}" -f $_.FreeSpace};a="right"}
Run Code Online (Sandbox Code Playgroud)

  • 重读建议的答案.我有一个复制/粘贴错误.:-)对于与Select-Object一起使用的哈希表,不支持align指令.支持与Format-Table一起使用的哈希表. (2认同)