PowerShell 中帶空格的路徑

Rohan Timalsina 2023年1月30日
  1. 在 PowerShell 中使用單引號 ' ' 處理路徑中的空格
  2. 在 PowerShell 中使用 & 運算子處理路徑中的空格
  3. 在 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 中處理它們。

作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相關文章 - PowerShell Path