Das Ausführen einer ausführbaren Datei aus PowerShell funktioniert nicht mit Leerzeichen im Pfad

Das Ausführen einer ausführbaren Datei aus PowerShell funktioniert nicht mit Leerzeichen im Pfad

Von der PowerShell-Eingabeaufforderung aus:

\Windows\system32\mspaint.exe

wird Paint ausführen. So wird

Invoke-Expression -command "\Windows\system32\mspaint.exe"

aber wenn ein Leerzeichen im Pfad ist, spuckt PowerShell den Dummy aus, z. B.

Invoke-Expression -command "\install\sub directory\test.bat"

Welche beschwert sich:

The term '\install\sub' is not recognized as the name of a cmdlet, function, script file, or operable program.

Was vermisse ich?

Antwort1

EntsprechendDasArtikel auf Technet, ist es nicht ausreichend, den Pfad in Anführungszeichen zu setzen.

Der Pfad, den Sie verwenden möchten, muss eineund(Et-Zeichen) vor dem Verzeichnis, sonst funktioniert es nicht.

Zum Beispiel:

Invoke-Expression -command & "\install\sub directory\test.bat"

Antwort2

Der einfachste Weg besteht darin, den Invoke-Operator zu verwenden:

&'String containing the path'

Beachten Sie, dass dies zum Starten einer ausführbaren Datei eigentlich das falsche Cmdlet ist . Invoke-ExpressionVerwenden Sie besser .Start-Process

verwandte Informationen