我有以下脚本根据文件名识别帐号,并将帐户列表添加到创建日期旁边的CSV文件中。
$ReconFolder = "C:\Users\tenba1\Documents\QlikView\Account Recons"
Get-ChildItem $ReconFolder -Filter *.xls | Where-Object {$_.BaseName -match '^Recon_\d{16,20}_\d+$'} | ForEach-Object{
$id,$date = $_.BaseName.Split('_')[1..2]
New-Object PSObject -Property @{
"Account Number" = $id
"Date Requested" = $date.Insert(4,'/').Insert(7,'/')
}
} | sort-object DateCreated -Descending | Export-Csv $ReconFolder\itemList.CSV - NoTypeInformation
它有两个问题:
由于某种原因,排序无效。我可以通过重新导入文件,排序然后再次导出来解决这个问题,但是我想这样做。
帐号可以在16到20位之间 - 将此格式发送到CSV
时,格式应为文本。目前,此10201314050019817277
这样的帐号最终会出现在文件中:10201314050019800000
。
答案 0 :(得分:0)
排序不起作用,因为管道包含不包含DateCreated的PSObject,要包含它将它添加到对象中:
New-Object PSObject -Property @{
"Account Number" = $id
"Date Requested" = $date.Insert(4,'/').Insert(7,'/')
"DateCreated" = $_.CreationTime
}
关于数字的格式化,请在文本编辑器中检查csv,我怀疑您正在Excel中查看数据并且csv包含正确的数据。