spsman
Goto Top

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:
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

Ich hätte jetzt "OPN" erwartet...

Content-ID: 1329068798

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

Ausgedruckt am: 19.11.2024 um 01:11 Uhr

149569
149569 01.10.2021 aktualisiert um 08:06:11 Uhr
Goto Top
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 🙈 ...
SPSman
Lösung SPSman 01.10.2021 aktualisiert um 08:37:48 Uhr
Goto Top
Zitat von @149569:

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 🙈 ...

Guten Morgen,

Ja diese Vertipper... 1000 Dank Dir!!!

Verräts du mir noch was das -split '[\t;,]') -replace '"' macht? Es teil bei allen , und der rest also das /t und das replace?
149569
149569 01.10.2021 aktualisiert um 09:03:49 Uhr
Goto Top
Zitat von @SPSman:
Verräts du mir noch was das -split '[\t;,]') -replace '"' macht?
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.