因为我添加了这段代码(因为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"}
答案 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
。