powershell - PowerShell Format-Table 需要属性作为列标题
问题描述
使用此代码:
$l | ForEach-Object -Process {
$p = ($_.Folder + '\' + $_.Filename).Replace("{yymmdd}", "190911")
if (Test-Path $p) {
Write-Output @{Portfolio = $_.Portfolio; Path = $p; CreateTime = (Get-ChildItem $p).CreationTime}
} else {
Write-Output @{Portfolio = $_.Portfolio; Path = $p; CreateTime = "not found"}
}
} | Format-Table
我得到:
名称 值 ---- ----- 路径 S:\Data\190911\LN190911.txt 投资组合 CALoan 创建时间 2019 年 9 月 12 日上午 6 点 29 分 47 秒 路径 S:\Data\190911\SL190911.txt 投资组合 CALoan 创建时间 2019 年 9 月 12 日上午 6 点 29 分 46 秒
我希望名称是列标题,值出现在每列下。我该怎么做?
解决方案
这只是将哈希表转换为对象的问题。删除Write-Output
, 并在哈希表之前添加类型[pscustomobject]
,它会做你想做的事。
$l | ForEach-Object -Process {
$p = ($_.Folder + '\' + $_.Filename).Replace("{yymmdd}", "190911")
if (Test-Path $p) {
[PSCustomObject]@{Portfolio = $_.Portfolio; Path = $p; CreateTime = (Get-ChildItem $p).CreationTime}
} else {
[PSCustomObject]@{Portfolio = $_.Portfolio; Path = $p; CreateTime = "not found"}
}
} | Format-Table
推荐阅读
- algorithm - Walker 在基于像素的形状的边缘
- javascript - 如何比较joi中的两个字段?
- python-3.x - Matplotlib 更新 bbox 位置
- c++ - 重新索引值
- sql - Oracle - 查看内置包的源代码
- angular - Angular SSR 错误:FIRESTORE:内部断言失败:意外状态
- docker - Mackbook Air M1 上的 DB2 docker
- javascript - 功能组件中的 PropTypes 不起作用并且不会抛出错误
- c# - 批处理 Azure ServiceBusTrigger 中断 Application Insights 操作 ID 到父 ID 连接
- tableau-api - Tableau 中五位或更多位数字的分隔符