CSV Überschrift erste Spalte einlesen
Hi,
ich habe eine CSV von der ich gerne den Inhalt von A1(erste Zeile erste Spalte) auslesen möchte... Allerdings schein es so als wenn Powershell alphabetisch sortiert...
Hab ihr einen Tipp?
CSV:
Ausgabe:
Ich hätte jetzt "OPN" erwartet...
ich habe eine CSV von der ich gerne den Inhalt von A1(erste Zeile erste Spalte) auslesen möchte... Allerdings schein es so als wenn Powershell alphabetisch sortiert...
Hab ihr einen Tipp?
CSV:
OPN,Beschreibung ,NW_komm
M15,Ventil 15,Bypass Wasser
V18,Motor 18,Pumpe
function GetCsvAsObject($CSVPath){
if ($CSVPath)
{
(Get-Content $CSVPath)|
ForEach-Object{$_ -replace ';',","}| # simikolon ersetzen
ForEach-Object{$_ -replace '´t',","}| #Tab ersetzen
Set-Content $CSVPath
#Set-Content $CSVPath $CSVText
return Import-Csv -Path $CSVPath -Delimiter ","
}
}
Set-Location -path C:\OPN
#Array Objektname
$CSVData= GetCsvAsObject('C:\OPN\OPN.csv')
$CSVData
$Name_1_Splate = ($CSVData| Get-member -MemberType 'NoteProperty' | Select-Object -ExpandProperty 'Name')#[2]
$Name_1_Splate
Ausgabe:
OPN Beschreibung NW_komm
--- ------------- -------
M15 Ventil 15 Bypass Wasser
V18 Motor 18 Pumpe
Beschreibung
--- ------------- -------
M15 Ventil 15 Bypass Wasser
V18 Motor 18 Pumpe
Beschreibung
Ich hätte jetzt "OPN" erwartet...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1329068798
Url: https://administrator.de/contentid/1329068798
Ausgedruckt am: 19.12.2024 um 10:12 Uhr
3 Kommentare
Neuester Kommentar
Get-Member schert sich einen Dreck um die Reihenfolge ... Für die Powershell sind das nur Eigenschaften eines Objekts keine "Spalten" und da spielt die Reihenfolge eben keine Rolle.
((Get-Content 'c:\OPN\OPN.csv' -Head 1) -split '[\t;,]') -replace '"'
$Name_1_Splate
Aua, schon wieder so ein gefährlicher Vertipper, das fällt dir bald wieder auf die Füße wenn du's dann mal ausnahmsweise richtig schreiben solltest 🙈 ...
Es ist eine Split-Variante die auf Regular Expressions basiert, also bei allen Tabs, Semikolons oder Kommas einen Split macht.
und das replace?
Entfernt etwaige Anführungszeichen aus dem Namen.