导出CSV字段格式

时间:2013-12-18 09:50:13

标签: powershell csv

我有以下脚本根据文件名识别帐号,并将帐户列表添加到创建日期旁边的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 

它有两个问题:

  1. 由于某种原因,排序无效。我可以通过重新导入文件,排序然后再次导出来解决这个问题,但是我想这样做。

  2. 帐号可以在16到20位之间 - 将此格式发送到CSV时,格式应为文本。目前,此10201314050019817277这样的帐号最终会出现在文件中:10201314050019800000

1 个答案:

答案 0 :(得分:0)

排序不起作用,因为管道包含不包含DateCreated的PSObject,要包含它将它添加到对象中:

New-Object PSObject -Property @{
   "Account Number" = $id
   "Date Requested" = $date.Insert(4,'/').Insert(7,'/')
   "DateCreated"    = $_.CreationTime
}

关于数字的格式化,请在文本编辑器中检查csv,我怀疑您正在Excel中查看数据并且csv包含正确的数据。