PowerShell 中帶空格的路徑
Rohan Timalsina
2023年1月30日
2022年5月16日
-
在 PowerShell 中使用單引號
' '
處理路徑中的空格 -
在 PowerShell 中使用
&
運算子處理路徑中的空格 -
在 PowerShell 中更改當前目錄時使用
" "
雙引號處理路徑中的空格
路徑是計算機中檔案或資料夾的完整位置。在 PowerShell 中,你將需要使用路徑來更改當前工作目錄或在指定位置執行一些檔案。
有時,在 PowerShell 中使用路徑時,如果有空格,你可能會遇到錯誤,因為空格會導致路徑中的拆分。因此,該命令將不會執行並在輸出中返回錯誤。
本教程將介紹在 PowerShell 中處理路徑中空格的不同方法。
在 PowerShell 中使用單引號 ' '
處理路徑中的空格
當你使用 Invoke-Expression
執行命令時,你可以用' '
單引號將子目錄的路徑括起來以處理 PowerShell 中路徑中的空格。
如果沒有 ' '
引號,空格會導致路徑中的拆分,PowerShell 將在路徑中找到空格時結束命令。
Invoke-Expression "C:\New Folder\script files\myscript.ps1"
輸出:
如你所見,PowerShell 不會執行完整的命令,因為路徑包含空格。請注意,如果我們在執行路徑中有空格的檔案時使用 ' '
引號會發生什麼。
例如:
Invoke-Expression "C:\'New Folder\script files'\myscript.ps1"
輸出:
myscript.ps1
包含 Get-Date
cmdlet,它列印當前日期和時間。
Sunday, February 27, 2022 10:24:06 PM
指令碼檔案執行沒有錯誤,所以可以使用該方法處理路徑中的空格。
在 PowerShell 中使用 &
運算子處理路徑中的空格
&
運算子在後臺執行它之前的管道。你可以使用&
運算子通過用雙引號" "
將路徑括起來來呼叫命令。
& "C:\New Folder\script files\myscript.ps1"
輸出:
Sunday, February 27, 2022 10:37:21 PM
或者,你也可以使用 .
運算子使用路徑中的雙引號 " "
執行命令。
. "C:\New Folder\script files\myscript.ps1"
輸出:
Sunday, February 27, 2022 10:37:21 PM
在 PowerShell 中更改當前目錄時使用" "
雙引號處理路徑中的空格
cd
命令更改 PowerShell 中的當前目錄。如果路徑包含空格,則當你不將路徑放在雙引號" "
中時會出現錯誤。
例如:
cd Work Documents
輸出:
Set-Location : A positional parameter cannot be found that accepts argument 'Documents'.
At line:1 char:1
+ cd Work Documents
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
你可以看到在沒有" "
的情況下執行 cd
命令會在更改路徑時出錯。看看使用雙引號 " "
時會發生什麼。
cd "Work Documents"
輸出:
如你所見,當前工作目錄已更改為指定路徑。
PS C:\Users\rhntm\Work Documents>
我們希望這篇文章有助於理解為什麼空格會導致路徑分裂並在 PowerShell 中處理它們。
Author: Rohan Timalsina