none
Powershell Select-Object bei Zweitem Aufruf leer RRS feed

  • Frage

  • Untenstehendes Programm zeigt zuerst den Inhalt der beiden folgenden csv Dateien:

    Inhalt Datei 1:
    ----------------
    Marke,Typ,Farbe,PS
    VW,Golf R32,blau,250
    Audi,A3,rot,170
    BMW,330d,weiss,231
    Seat,Leon,rot,170
    VW,Polo,silber,90
    BMW,335d,schwarz,286
    Ford,Focus,rot,200
    Ford,Fiesta,weiss,90

    Inhalt Datei 2:
    ----------------
    Marke,Typ,Farbe,PS
    Audi,A6 3.0 TDI,schwarz,245
    VW,Passat,schwarz,250
    Seat,Leon,rot,170
    Mercedes,350 CDI,silber,220
    Toyota,Supra,blau,330
    Renault,Clio,dunkelblau,58
    BMW,535d,weiss,286
    VW,Scirocco,weiss,270

    Soweit funktioniert das richtig.

    Dann sollen die zwei Variablen $S1 und $S2 die Dritte Spalte der jeweiligen csv-Datei ausgeben.

    Spalte3Datei1                                                                                                                                      
    -------------                                                                                                                                      
    Farbe                                                                                                                                              
    blau                                                                                                                                               
    rot                                                                                                                                                
    weiss                                                                                                                                              
    rot                                                                                                                                                
    silber                                                                                                                                             
    schwarz                                                                                                                                            
    rot                                                                                                                                                
    weiss       


    Spalte3Datei2                                                                                                                                      
    -------------                                                                                                                                      
    Farbe                                                                                                                                              
    schwarz                                                                                                                                            
    schwarz                                                                                                                                            
    rot                                                                                                                                                
    silber                                                                                                                                             
    blau                                                                                                                                               
    dunkelblau                                                                                                                                         
    weiss                                                                                                                                              
    weiss

    leider werden beim Durchlauf des Programms anstatt der Variablen $S2 nur leere Zeilen ausgegeben.

    Wenn ich nach Durchlauf in der Kommandozeile nochmal explizit schreibe:

    PS H:\> $S2 = $InhaltDatei2 | select-object @{Expression={$_.split(",")[$SpalteDatei2]};Label="Spalte3Datei2"}

    PS H:\> $S2

    dann wird auch die Palte korrekt ausgegeben, nur nicht im Durchlauf des Programms.

    Powershell Programm:

    $SpalteDatei1 = "2"
    $SpalteDatei2 = "2"
    $InhaltDatei1 = Get-Content 'C:\Temp\#18.04.2012 CompareSpecificColumn\Auto.csv'
    $InhaltDatei2 = Get-Content 'C:\Temp\#18.04.2012 CompareSpecificColumn\Auto2.csv'
    Write-Host
    Write-Host "Inhalt Datei 1: "
    Write-Host "----------------"
    $InhaltDatei1
    Write-Host
    Write-Host "Inhalt Datei 2: "
    Write-Host "----------------"
    $InhaltDatei2
    Write-Host
    $S1 = $InhaltDatei1 | select-object @{Expression={$_.split(",")[$SpalteDatei1]};Label="Spalte3Datei1"}
    $S1
    Write-Host
    Write-Host
    $S2 = $InhaltDatei2 | select-object @{Expression={$_.split(",")[$SpalteDatei2]};Label="Spalte3Datei2"}
    $S2
    Write-Host


    Donnerstag, 19. April 2012 16:48