Join-Path

将路径和子路径合并为单个路径。

语法

PowerShell
Join-Path
    [-Path] <String[]>
    [-ChildPath] <String>
    [[-AdditionalChildPath] <String[]>]
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

说明

Join-Path cmdlet 将路径和子路径合并为单个路径。 提供程序提供路径分隔符。

示例

示例 1:将路径与子路径合并

PowerShell
Join-Path -Path "path" -ChildPath "childpath"

path\childpath

此命令使用 Join-Path 将路径与子路径组合在一起。

由于命令是从 FileSystem 提供程序执行的,因此它提供 \ 分隔符来联接路径。

示例 2:合并已包含目录分隔符的路径

PowerShell
Join-Path -Path "path\" -ChildPath "\childpath"

path\childpath

处理现有目录分隔符 \,因此 PathChildPath 之间只有一个分隔符

示例 3:通过将路径与子路径联接来显示文件和文件夹

PowerShell
Join-Path "C:\win*" "System*" -Resolve

此命令显示通过联接 C:\Win\* 路径和 System\* 子路径来引用的文件和文件夹。 它显示与 Get-ChildItem相同的文件和文件夹,但它显示每个项的完全限定路径。 在此命令中,省略 PathChildPath 可选参数名称。

示例 4:将 Join-Path 与 PowerShell 注册表提供程序配合使用

PowerShell
PS HKLM:\> Join-Path -Path System -ChildPath *ControlSet* -Resolve

HKLM:\System\ControlSet001
HKLM:\System\CurrentControlSet

此命令显示 HKLM\System 注册表子项中包括 ControlSet的注册表项。

Resolve 参数尝试解析联接的路径,包括来自当前提供程序路径的通配符 HKLM:\

示例 5:将多个路径根与子路径合并

PowerShell
Join-Path -Path C:, D:, E:, F: -ChildPath New

C:\New
D:\New
E:\New
F:\New

此命令使用 Join-Path 将多个路径根与子路径组合在一起。

备注

Path 指定的驱动器必须存在,否则该条目的联接将失败。

示例 6:将文件系统驱动器的根与子路径合并

PowerShell
Get-PSDrive -PSProvider filesystem | ForEach-Object {$_.Root} | Join-Path -ChildPath "Subdir"

C:\Subdir
D:\Subdir

此命令将控制台中每个 PowerShell 文件系统驱动器的根与 Subdir 子路径组合在一起。

该命令使用 Get-PSDrive cmdlet 获取 FileSystem 提供程序支持的 PowerShell 驱动器。 ForEach-Object 语句仅选择 PSDriveInfo 对象的 Root 属性,并将其与指定的子路径组合在一起。

输出显示计算机上的 PowerShell 驱动器包含映射到 C:\Program Files 目录的驱动器。

示例 7:合并无限数量的路径

PowerShell
Join-Path a b c d e f g

a\b\c\d\e\f\g

AdditionalChildPath 参数允许联接无限数量的路径。

在此示例中,不使用任何参数名称,因此“a”绑定到 Path,将“b”绑定到 ChildPath,将“c-g”绑定到 AdditionalChildPath

参数

-AdditionalChildPath

指定要追加到 Path 参数的值的其他元素。 ChildPath 参数仍是必需的,并且也必须指定。

此参数是使用 ValueFromRemainingArguments 属性指定的,该属性允许联接无限数量的路径。

此参数已在 PowerShell 6.0 中添加。

类型:String[]
Position:2
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ChildPath

指定要追加到 Path 参数值的元素。 允许使用通配符。 ChildPath 参数是必需的,尽管参数名称(“ChildPath”)是可选的。

类型:String
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:True

-Credential

备注

任何随 PowerShell 一起安装的提供程序都不支持此参数。 要模拟其他用户,或在运行此 cmdlet 时提升凭据,请使用 Invoke-Command

类型:PSCredential
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-Path

指定子路径追加到的主路径(或路径)。 允许使用通配符。

Path 的值确定哪个提供程序联接路径并添加路径分隔符。 Path 参数是必需的,尽管参数名称(“Path”)是可选的。

类型:String[]
别名:PSPath
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:True

-Resolve

指示此 cmdlet 应尝试从当前提供程序解析联接的路径。

  • 如果使用通配符,cmdlet 将返回与联接路径匹配的所有路径。
  • 如果 未使用 通配符,则如果路径不存在,则 cmdlet 将出错。
类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

String

可以通过管道将包含路径的字符串传递给此 cmdlet。

输出

String

此 cmdlet 返回包含生成的路径的字符串。

备注

包含 Path 名词(Path cmdlet)的 cmdlet作路径名称,并返回所有 PowerShell 提供程序可以解释的简洁格式的名称。 它们旨在用于要以特定格式显示路径名称的所有或部分的程序和脚本。 像使用 DirnameNormpathRealpathJoin或其他路径控器一样使用它们。

可以将路径 cmdlet 与多个提供程序一起使用,包括 FileSystemRegistryCertificate 提供程序。

此 cmdlet 旨在与任何提供程序公开的数据进行交互。 若要列出会话中可用的提供程序,请键入 Get-PSProvider。 有关详细信息,请参阅 about_Providers