哈希表对齐不起作用

时间:2014-06-24 14:41:49

标签: powershell

因为我添加了这段代码(因为2个浮点数对我来说已经足够了)我的哈希表得到了对齐。提前谢谢。

@{Name="Megas";Expression={"{0:N2}" -f $($_.Length / 1MB)}}
来自orignal的

@{Name="Megas";Expression={$_.Length / 1MB}}

期望的输出:

Ficheros                                 Megas(top rigth)
--------                                 ----- 
\desktop\someting.exe                    1.20

实际输出,正在导致风险路径......

Ficheros              Megas(at the middle)
--------              ----- 
\desktop\sometin...   1.20

CODE:

param([string]$pc,[string]$user)

$w7="\\$pc\c$\users\$user\desktop"
if(Test-Path $w7){

    Get-ChildItem -Recurse -force -Include *.* -exclude *.ini, *.lnk, *.url, *.db, *.txt $w7 -ErrorAction "SilentlyContinue" | ls | Select-Object -ErrorAction "SilentlyContinue" @{Name="Ficheros";Expression={$_.FullName -replace '.*?(\\Desktop.*)', '$1'}}, @{Name="Megas";Expression={$_.Length / 1MB}}

}

else{
    Write-Host -BackgroundColor White -ForegroundColor Red "FAIL"
}

我尝试过,但是得到错误“与Select-Object使用的哈希表不支持align指令....等等”

Select-Object format-table @{Name="Megas";Expression={$_.Length / 1MB};alignment="right"}

1 个答案:

答案 0 :(得分:2)

正如@AdilHindistan在评论中建议的那样,您应该尝试使用Format-Table -AutoSize来修复视觉输出。 Select-Object用于在导出对象之前仅提取(创建自定义对象)所需的属性。Format-Table是您需要为“视觉结果”创建自定义视图时应使用的属性。所以试试:

param([string]$pc,[string]$user)

$w7="\\$pc\c$\users\$user\desktop"
if(Test-Path $w7){

    Get-ChildItem -Recurse -force -Include *.* -exclude *.ini, *.lnk, *.url, *.db, *.txt -Path $w7 -ErrorAction "SilentlyContinue" |
    Format-Table -AutoSize -ErrorAction "SilentlyContinue" @{Name="Ficheros";Expression={$_.FullName -replace '.*?(\\Desktop.*)', '$1'}}, @{Name="Megas";Expression={$_.Length / 1MB}}
}

else{
    Write-Host -BackgroundColor White -ForegroundColor Red "FAIL"
}

您的样本中还有一个不必要的ls(Get-ChildItem)。您已在第一次-Recurse来电中使用Get-ChildItem