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

另请参阅