2016-04-15 45 views
0

我在一行中有一個鍵列表,我正在計數行並在下一行添加計數。我不斷收到錯誤。 "Cannot convert value "KEY" to type "System.Int32". Error: "Input string was not in a correct format."彷彿它不喜歡我行的標題在我的.csv在下一行中計數行和顯示計數

我的CSV看起來像這樣

KEY, 
6666, 
55555, 
5555, 
5550, 
23, 
30, 
V-23333 

我的輸出應該

KEY,Count 
6666,1 
55555,2 
5555,3 
5550,4 
23,5 
V-23333,6 

我的代碼是:

$data = Get-content "file.csv" 

$datalist = New-Object System.Collections.ArrayList 

$count = 0 

foreach($KEY in $data) 
{ 
    $count++ 
    $row = New-Object -TypeName PSObject 
    $row | Add-Member -MemberType NoteProperty -Name KEY -Value $vkey.KEY 
    $row | Add-Member -MemberType NoteProperty -Name Count -Value $count 
    $datalist.Add($row) 
} 

$datalist.ToArray() | Export-CSV "file2.csv" -NoTypeInformation 

回答

1

使用select-object創建計數行:

$a = import-csv .\file.csv | select key, count 

$count = 1 

$a | % { $_.count = $count; $count++} 
$a | Export-Csv .\file2.csv 

請勿在文件名中使用$。 ($ file.csv,$ file2.csv)

+0

是的「$」是一個錯字。根據錯誤 – ShanayL

+0

,我遇到了關鍵列的問題您是否嘗試過發佈的代碼?你的鑰匙不是一個數字,就像你最後一行一樣。 – Martin

+0

是的,我嘗試過。它適用於我的計數列,但KEY列是空白的。你是對的關鍵並不總是一個數字 – ShanayL