itnerd02
Goto Top

Daten von zwei verschiedenen CSV Dateien in eine neue csv datei speichern

Hallo ZUsammen,
ich habe eine Frage und zwar muss ich zwei csv Dateien in POwerShell importieren und diverse Spalten selektieren und die Spalten die ich dann benötige in eine neue CSV lesen.
$import_person = Import-Csv 'C:\Temp\data.csv' -Delimiter ',' -Encoding UTF8
$Import_schule = import-Csv 'C:\Temp\schule.csv' -Delimiter ',' -Encoding UTF8

#selektiere die Tabellen die ich brauche
$person= $import_person | Select-Object per_vorname,per_nachname,per_geburtsdatum,betr_tel_nr |
$person= $import_person| Select-Object person_id

Aus diesen zwei muss ich nun die ausgewählten Spalten in eine neue CSV speichern, wie kann ich das machen?

Vielen Dank für eure Hilfe.

Content-ID: 562645

Url: https://administrator.de/contentid/562645

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

manuel-r
manuel-r 02.04.2020 um 13:11:43 Uhr
Goto Top
$person= $import_person | Select-Object per_vorname,per_nachname,per_geburtsdatum,betr_tel_nr |
$person= $import_person| Select-Object person_id

Verständnisproblem:
Warum überschreibt du das was du in Zeile 1 machst gleich nochmal in Zeile 2 ohne irgendwas dazwischen mit dem Ergebnis gemacht zu haben?
Und wo genau ist der Teil in dem du was mit der zweiten CSV anstellst? Vom Einlesen mal abgesehen.

Manuel
143472
143472 02.04.2020 um 13:14:43 Uhr
Goto Top
Moin,

ich stelle mal eine ganz verrückte These auf.
Wenn ein Import-CSV existiert,ist die wahrscheinlichkeit sehr hoch, dass eventuell ein Export-CSV durch MS entwickelt wurde.

In der Powershell ISE werden alle Befehle für Maus-Administratoren in einer Dropdown-Liste aufgeführt.


MfG
csv-ise
ITnerd02
ITnerd02 02.04.2020 um 14:02:56 Uhr
Goto Top
Ich will hiermit auswählen welche Zeilen ich von der CSV haben will.


$import_person = Import-Csv 'C:\Temp\data.csv' -Delimiter ',' -Encoding UTF8 das ist die erste csv
$Import_schule = import-Csv 'C:\Temp\schule.csv' -Delimiter ',' -Encoding UTF8 das ist der import der zweiten csv

danach will ich mit select object die richtigen spalten auswählen die ich brauche.
TK1987
TK1987 02.04.2020 aktualisiert um 14:15:57 Uhr
Goto Top
Moin,

Zitat von @ITnerd02:
danach will ich mit select object die richtigen spalten auswählen die ich brauche.
dafür musst du Zeile für Zeile ein neues Objekt mit den entsprechenden Spalten und ihren Werten erstellen.

Da du uns nicht verraten hast, welche Spalten aus welcher CSV übernommen werden sollen, musst du das Ganze natürlich ggfs. entsprechend anpassen.

$import_person = Import-Csv 'C:\Temp\data.csv' -Delimiter ',' -Encoding UTF8  
$Import_schule = import-Csv 'C:\Temp\schule.csv' -Delimiter ',' -Encoding UTF8  

# Maximale Zeilenanzahl ermitteln
$MaxLines = ($import_person.Count,$Import_schule.Count|Measure -Max).Maximum

# Neues Object erzeugen
$NeueCSV=For ($i=0 ; $i -lt $MaxLines ; $i++ ) {
	New-Object PsObject -Property @{
		person_id        = $import_schule[$i].person_id
		per_vorname      = $import_person[$i].per_vorname
		per_nachname     = $import_person[$i].per_nachname
		per_geburtsdatum = $import_person[$i].per_geburtsdatum
		betr_tel_nr      = $import_person[$i].betr_tel_nr
		}
	}

$NeueCSV | select person_id,per_vorname,per_nachname,per_geburtsdatum,betr_tel_nr  | Export-Csv -Delimiter ',' -Encoding UTF8 -NoTypeInformation 'C:\Temp\Neu.csv'  

Gruß Thomas