2016-04-19 7 views
1

インポートするコードに取り組んでいます - csv - コンテンツを変更してから、csvに書き出します。Powershell - StreamWriterは最初の行のみを書き出します

I'veは輸出-CSVでエクスポートしようとした - それだけで私ものStreamWriterと試みた文字列 のな長さを書き込みます - それだけで:-)私はPowerShellのに新しいです一度

$ Resultatを書き込み

$workfile = import-csv "X:\powershell\converter\test.csv" -Delimiter ';' 

ForEach ($item in $workfile) 
{ 
$Id = $item.("ID") 
$Maaler = $item.("Maaler") 
$Fra = $item.("Fra") 
$Til = $item.("Til") 

#Dato gymnastik 
$Tilto = $item.("Til") 
$Tilto = $Tilto.substring(0,10) 


$Til = $Til.substring($Til.length - 8, 8) 
$Forbrug = $item.("Forbrug") 
$Enhed = $item.("Enhed") 
$aflaesningstype = $item.("Aflæsningstype?") 
$T = ".000+02:00" 

$Resultat = $Tilto + "T" + $Til + $T + ',"' + $Maaler + '","' + '","' + '","' + '","' + '","' + $Forbrug + '","' + $Enhed + '","' + '255"' 

Write-output "$Resultat" 
} 
$Resultat | Export-Csv "X:\powershell\behandlet\Output $(get-date -f dd-MM-yyyy-hh-mm-ss).csv" -Delimiter ',' -NoType 

#$fhStream = [System.IO.StreamWriter] "X:\powershell\behandlet\Output $(get-date -f dd-MM-yyyy-HH-mm-ss).csv" 
#$fhStream.WriteLine($Resultat) 
#$fhStream.Close() 

書き込み出力は正しい方法で出力を示し

誰もが私が間違っているのかを見ることができますか?

答えて

0

これを試してみてください:

$workfile = import-csv "X:\powershell\converter\test.csv" -Delimiter ';' 
$result = New-Object System.Collections.ArrayList 
ForEach ($item in $workfile) 
{ 
$Id = $item.("ID") 
$Maaler = $item.("Maaler") 
$Fra = $item.("Fra") 
$Til = $item.("Til") 

#Dato gymnastik 
$Tilto = $item.("Til") 
$Tilto = $Tilto.substring(0,10) 


$Til = $Til.substring($Til.length - 8, 8) 
$Forbrug = $item.("Forbrug") 
$Enhed = $item.("Enhed") 
$aflaesningstype = $item.("Aflæsningstype?") 
$T = ".000+02:00" 

$result += $Tilto + "T" + $Til + $T + ',"' + $Maaler + '","' + '","' + '","' + '","' + '","' + $Forbrug + '","' + $Enhed + '","' + '255"' 
} 
$result | Out-File "X:\powershell\behandlet\Output $(get-date -f dd-MM-yyyy-hh-mm-ss).csv" 
+0

はあなたの迅速な応答をありがとうございました。 $ Resultat + =は改行を削除してコードを遅くすることです。 – Gangsebangse

+0

ほぼそこにあると思います。現在、csvには予想される17000行が含まれていますが、セル内の長さは – Gangsebangse

+0

ですが、この部分ではっきりしないと申し訳ありません。コードの出力ではなく、$結果文字列の長さを取得します。 83,82,82,83など – Gangsebangse

関連する問題