2013-12-18 143 views
0

我有以下腳本,它根據文件名識別帳號,並將帳號列表添加到創建日期旁邊的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 

有2個問題是:

  1. 排序是不是出於某種原因的工作。我可以通過重新導入文件,排序,然後再次導出來解決此問題,但希望能夠正確執行此操作。

  2. 賬號可以在16到20位之間 - 當發送到CSV時,格式應該是文本。目前,像這樣的10201314050019817277這樣的帳號最終會出現在如下文件中:10201314050019800000

回答

0

排序是不工作,因爲管道包含您PSObject不包含dateCreated會,包括這個它添加到你的對象:

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

至於數字的格式,在文本編輯器中檢查csv,我懷疑你在Excel中查看數據,並且csv包含正確的數據。