Benutzer mit den meisten Antworten
Erste Zeile von eíner .CSV löschen ohne die .csv zu vergößern.

Frage
-
Hallöchen,
ich mal wieder.
Vieleicht eine sehr einfache Frage aber irgendwie komme ich nicht zum Ergebnis.Ich habe mehrere 880kb große .csv's nun würde ich gerne jeweils die erste Zeile löschen. Folgenden Code nehme ich dafür:
$csv = Get-Content C:\Temp\Test.csv $csv = $csv[1..($csv.count - 1)] $csv > C:\Temp\Test.csv
Das klappt auch alles supper doch wird aus den 880kb auf ein mal 1,7MB! :(
Wo liegt der Grund dafür und wie kann ich dies ändern?VG
Thomas
- Bearbeitet Digiflex Donnerstag, 19. Juli 2012 07:14
Antworten
-
Was meinst du denn mit erste Zeile Löschen ?
Normalerweise steht bei PowerShell in der ersten Zeile die Typ information !
Dies bekommt man mit dem Parameter -NoTypeInformation weg!Danach gibt es noch eine "erste Zeile" die die Spalten überschriften enthält !
Oder meinst du mit erster Zeile den ersten Daten eintrag ?Das die Datei doppelt so gross wird liegt daren das Export-CSV standardmässig ASCII als Zeichen Codierung benutzt.
Bei ASCII wird pro Buchstabe ein Byte genutzt.
Alle anderen PowerShell Funktionen beutzen Unicode als Zeichen Codierung. Dort werden pro Buchstabe 2 Byte genutz.
Das verdoppelt die Datei!Du kannst bei der Ausgabe der Datei, mit dem Parameter –Encoding ASCII auswählen, dann bleibt die Datei so wie sie ist!
Einfacher Geht es so:
$CSV = Import-CSV 'c:\temp\test.csv' $CSV[1..($CSV.count - 1)] | Export-csv 'c:\temp\test-1.csv' -NoTypeInformation
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Bearbeitet Peter Kriegel Donnerstag, 19. Juli 2012 10:41
- Als Antwort markiert Digiflex Donnerstag, 19. Juli 2012 11:31
Alle Antworten
-
Was meinst du denn mit erste Zeile Löschen ?
Normalerweise steht bei PowerShell in der ersten Zeile die Typ information !
Dies bekommt man mit dem Parameter -NoTypeInformation weg!Danach gibt es noch eine "erste Zeile" die die Spalten überschriften enthält !
Oder meinst du mit erster Zeile den ersten Daten eintrag ?Das die Datei doppelt so gross wird liegt daren das Export-CSV standardmässig ASCII als Zeichen Codierung benutzt.
Bei ASCII wird pro Buchstabe ein Byte genutzt.
Alle anderen PowerShell Funktionen beutzen Unicode als Zeichen Codierung. Dort werden pro Buchstabe 2 Byte genutz.
Das verdoppelt die Datei!Du kannst bei der Ausgabe der Datei, mit dem Parameter –Encoding ASCII auswählen, dann bleibt die Datei so wie sie ist!
Einfacher Geht es so:
$CSV = Import-CSV 'c:\temp\test.csv' $CSV[1..($CSV.count - 1)] | Export-csv 'c:\temp\test-1.csv' -NoTypeInformation
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Bearbeitet Peter Kriegel Donnerstag, 19. Juli 2012 10:41
- Als Antwort markiert Digiflex Donnerstag, 19. Juli 2012 11:31