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 查找供平台使用的字符。

指定容器和子容器后,必须提供项名称,前面加上反斜杠。 例如,C:\Windows\System32 目录中 Shell.dll 文件的完全限定路径名称如下所示:

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) 的路径允许你清楚地区分这两个文件。

另请参阅