2017-08-03 1 views
1

Ich habe eine Abfrage wie wenn ich versuche, den Ausdruck, der einen Pfad mit Leerzeichen enthält, ausführen, bekomme ich einen Fehler wie folgt.In Powershell, Invoke-Ausdruck funktioniert nicht bei der Eingabe von Leerzeichen im Pfad

Code:

$path="E:\Test\My space\Log" 
Invoke-Expression $path 

E:\Test\My: The term 'E:\test\My' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 
At line:1 char:1 
+ E:\Test\My space\Log 
+ ~~~~~~~~~~~~~ 
    + CategoryInfo   : ObjectNotFound: (E:\Test\My :String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

Könnten Sie mir bitte helfen, dieses Problem zu beheben.?

+3

Das ist gleichbedeutend mit der Eingabe von 'E: \ Test \ My space \ Log' in die Konsole und das Drücken von Enter - was haben Sie erwartet? –

+1

Jeder Pfad muss in Anführungszeichen gesetzt werden, so dass das obige wie folgt aussehen würde: "Invoke-expression" $ path "' –

+2

Sie brauchen nicht 'Invoke-Expression'. '& $ path' wird gut funktionieren. –

Antwort

0

Benutzen Sie und ein Graviszeichen (grave accent), um den Raum zu entkommen:

$path='E:\Test\My` space\Log' 
Invoke-Expression $path 

Oder programmiert:

$path="E:\Test\My space\Log" 
Invoke-Expression ($path -Replace ' ', '` ') 
+0

Dies ist nicht das Problem, das ein grundlegendes Verständnis Problem ist – TheIncorrigible1

+0

Sie haben Recht, es ist wahrscheinlich ein grundlegendes Verständnis Problem hier, aber es beantwortet die Frage: * "Könnten Sie mir bitte helfen, dieses Problem zu beheben.?"* – iRon

0

sollten Sie in der Lage sein, nur

& $path 

ich anrufen denke, Invoke-Expression im Grunde nur Ihren Wert in die Schale bei Nennwert.

Verwandte Themen