共用方式為


about_Path_Syntax

簡短描述

描述 PowerShell 中的完整和相對路徑格式。

詳細描述

數據存放區中的所有專案都可以透過PowerShell提供者存取,透過其路徑名稱來唯一識別。 路徑是專案名稱、專案所在的容器和子容器,以及存取容器的PowerShell磁碟驅動器的組合。

在 PowerShell 中,路徑名稱可以是兩種類型之一: 完整相對。 完整路徑包含組成路徑的所有元素。 下列語法顯示完整路徑中的元素:

[<provider>::]<drive>:[\<container>[\<subcontainer>...]]\<item>

<provider> 位元是指您用來存取數據存放區的 PowerShell 提供者。 例如,FileSystem 提供者可讓您存取電腦上的檔案和目錄。 語法的這個元素是選擇性的,而且絕對不需要,因為磁碟驅動器名稱在所有提供者中都是唯一的。

<drive> 位元是指特定 PowerShell 提供者支援的 PowerShell 磁碟驅動器。 在 FileSystem 提供者的情況下,PowerShell 磁碟驅動器會對應至系統上設定的 Windows 磁碟驅動器。 例如,如果您的系統包含 A: 磁碟驅動器和 C: 磁碟驅動器,FileSystem 提供者會在 PowerShell 中建立相同的磁碟驅動器。

指定磁碟驅動器之後,您必須指定包含專案的任何容器和子容器。 容器必須以存在於數據存放區中的階層式順序來指定。 換句話說,您必須從父容器開始,然後從該父容器中的子容器開始,重複每個子容器的模式。 此外,每個容器前面都必須加上反斜杠。

注意

PowerShell 可讓您使用反斜杠或正斜線與其他平臺上的 PowerShell 相容。 這適用於 PowerShell 命令,但不適用於只預期原生目錄分隔符的原生應用程式。 用來 [System.IO.Path]::DirectorySeparatorChar 尋找平臺所使用的字元。

指定容器和子容器之後,您必須提供專案名稱,前面加上反斜杠。 例如,目錄中檔案的完整路徑名稱Shell.dllC:\Windows\System32如下所示:

C:\Windows\System32\Shell.dll

在這裡情況下,存取容器的磁碟驅動器是 C: 磁碟驅動器、最上層容器為 Windows、子容器為 System32,而專案為 Shell.dll

在某些情況下,您不需要指定完整路徑,而是可以使用相對路徑。 PowerShell 可讓您根據專案相對於目前工作位置的位置來識別專案。

PowerShell 會使用下列字元序列來指定相對路徑。

  • .) - 目前位置
  • ..) - 目前位置的父系
  • \) - 目前位置的根目錄

下列範例是以目前的工作目錄設定為 C:\Windows基礎。

  • 相對路徑 .\System 會解析為 C:\Windows\System
  • 相對路徑 ..\Program Files 會解析為 C:\Program Files
  • 相對路徑 \Program Files 會解析為 C:\Program Files
  • 相對路徑 System 會解析為 C:\Windows\System

在命令中使用路徑時,您可以使用完整路徑或相對路徑。 例如,假設您目前的工作目錄是 C:\Windows。 下列 Get-ChildItem 命令會擷取目錄中的所有專案 C:\TechDocs

Get-ChildItem \TechDocs

反斜杠表示應該使用目前工作位置的磁碟驅動器根目錄。 因為工作目錄是 C:\Windows,磁碟驅動器根目錄是 C: 磁碟驅動器。 TechDocs因為目錄位於根目錄外,因此您只需要指定反斜杠。

您可以使用完整路徑來取得相同的結果:

Get-ChildItem C:\TechDocs

不論您是否使用完整路徑或相對路徑名稱,路徑都很重要,不僅因為它找到專案,而且因為它可唯一識別專案,即使該專案與不同容器中的另一個項目共用相同的名稱也一樣。

例如,假設您有兩個名為 的檔案 Results.txt。 第一個檔案位於名為 C:\TechDocs\Jan的目錄中,而第二個檔案位於名為 的 C:\TechDocs\Feb目錄中。 第一個檔案的路徑 (C:\TechDocs\Jan\Results.txt) 和第二個檔案的路徑 (C:\TechDocs\Feb\Results.txt) 可讓您清楚區分這兩個檔案。

支援 Win32 檔案命名空間

在 Windows 上,支援 FileSystem 提供者的 Cmdlet 也支援使用 Win32 檔案命名空間格式的路徑。 您只能搭配 Cmdlet 的 LiteralPath 參數使用這些路徑。

Win32 檔案命名空間中的路徑前面會加上 \\?\。 前置詞會告知 Windows API 停用所有字串剖析,並將緊接著的字串直接傳送至文件系統。 例如,如果文件系統支援大型路徑和檔名,您可以超過 Windows API 所強制執行的MAX_PATH 限制。

如需詳細資訊,請參閱命名檔案、路徑和命名空間中的 Win32 檔案命名空間

另請參閱