2017-08-03 35 views
1

我有一個查詢,例如當我嘗試執行包含具有空格的路徑的表達式時,出現如下錯誤。在Powershell中,Invoke-expression在路徑中輸入空間時不起作用

代碼:

$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 

能否請你幫我解決這個問題?

+3

這就相當於剛進入控制檯輸入'E:\ Test \ My space \ Log'並敲擊回車 - 你預期會發生什麼? –

+1

任何路徑都必須放在引號中,所以上面看起來像是「Invoke-expression」$ path「' –

+2

你不需要'Invoke-Expression'。 '&$路徑'將工作得很好。 –

回答

0

使用單引號和反引號(grave accent)逃脫的空間:

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

或編程:

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

這沒有解決這個問題,這是一個基本的理解問題 – TheIncorrigible1

+0

你是對的,這裏可能存在一個基本的理解問題,但它確實回答了這個問題:*「你能幫我解決這個問題嗎?」 – iRon

0

你應該能夠只是調用

& $path 

我認爲Invoke-Expression基本上只是將您的值輸入到shell的表面值。

相關問題