none
"Import-CSV -path $path" ist NULL RRS feed

  • Frage

  • Hi zusammen,

    ich habe sehr lange gegoogelt, vieles gefunden, aber keiner der Ansätze hat bis jetzt mein Problem lösen können.

    Vielleicht hat jemand von Euch eine Idee?

    #CSV laden      
            [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null 
            $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
            $OpenFileDialog.filter = "CSV (*.csv)| *.csv"
            $OpenFileDialog.ShowDialog() | Out-Null
            [string]$inputfile = $OpenFileDialog.filename
    
            Write-Output "Inputfile:"
            Write-Output $inputfile
            if ($inputfile = $null) 
            {
                Write-Output "Sie haben keine CSV-Datei ausgewählt, das Script schließt sich in 5 Sekunden."
                Stop-Transcript
                Remove-PSSession $Session
                Start-Sleep -Seconds 5
                exit
            }
            
            $csv = Import-CSV -Path "$inputfile" -Delimiter ";"
            if($?)
            {
                #do something
            }

    Der Error lautet:

    Import-Csv : Das Argument für den Parameter "Path" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder leer ist, und führen Sie den Befehl erneut aus.
    In C:\Users\mschoenburg\Desktop\Ordnerberechtigungen.ps1:69 Zeichen:33
    +         $csv = import-csv -Path "$inputfile" -Delimiter ";"
    +                                 ~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (:) [Import-Csv], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.ImportCsvCommand

    Mittwoch, 14. März 2018 10:55

Antworten

  • Das Gleicheitszeichen "="ist eine Zuweisung. Wenn Du etwas auf Gleichheit prüfen willst, musst Du "-eq" benutzen.

    In Deiner Bedingung "if ($inputfile = $null)"  weist Du der Variablen $InputFile einen neuen Wert zu. In diesem Fall Null.

    In Deinem Fall würde vermutlich "if ($inputfile)" auch ausreichen.

    ... und noch vergessen: Willkommen im deutschen Powershell Forum.  ... und das auch noch am Pi-Day.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''






    Mittwoch, 14. März 2018 11:04

Alle Antworten

  • Das Gleicheitszeichen "="ist eine Zuweisung. Wenn Du etwas auf Gleichheit prüfen willst, musst Du "-eq" benutzen.

    In Deiner Bedingung "if ($inputfile = $null)"  weist Du der Variablen $InputFile einen neuen Wert zu. In diesem Fall Null.

    In Deinem Fall würde vermutlich "if ($inputfile)" auch ausreichen.

    ... und noch vergessen: Willkommen im deutschen Powershell Forum.  ... und das auch noch am Pi-Day.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''






    Mittwoch, 14. März 2018 11:04
  • verdammt, zu spät :)

    So ein schöner Fehler, hab ich am Anfang auch gemacht

    Mittwoch, 14. März 2018 11:08
  • ... hatten wir doch alle ... sollte dann aber beim Debuggen auffallen.  ;-)

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 14. März 2018 11:14
  • Ach ja, verdammt, dass vergesse ich jedesmal wenn ich wieder mit PowerShell arbeite. Danke!

    Ich habe nach PowerShell gesucht, bin auf dieses Forum gestoßen, hier gab es einige Fragen zu PowerShell und da habe ich auch eine gestellt. Sorry, falls ich irgendetwas übersehn hab.

    Mittwoch, 14. März 2018 11:15
  • Alles gut. Dafür sind wir ja da. Und manchmal hilft ein zusätzliches Augenpaar eben doch.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 14. März 2018 11:53