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