Split-Path

返回指定的路径部分。

语法

ParentSet (默认值)

Split-Path
    [-Path] <String[]>
    [-Parent]
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

LeafSet

Split-Path
    [-Path] <String[]>
    -Leaf
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

LeafBaseSet

Split-Path
    [-Path] <String[]>
    -LeafBase
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

ExtensionSet

Split-Path
    [-Path] <String[]>
    -Extension
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

QualifierSet

Split-Path
    [-Path] <String[]>
    -Qualifier
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

NoQualifierSet

Split-Path
    [-Path] <String[]>
    -NoQualifier
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

IsAbsoluteSet

Split-Path
    [-Path] <String[]>
    -IsAbsolute
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

LiteralPathSet

Split-Path
    -LiteralPath <String[]>
    [-Resolve]
    [-Credential <PSCredential>]
    [<CommonParameters>]

说明

Split-Path cmdlet 仅返回路径的指定部分,例如父文件夹、子文件夹或文件名。 它还可以获取拆分路径引用的项,并判断路径是相对路径还是绝对路径。 如果在未指定任何其他参数的情况下拆分路径,Split-Path 返回提供的路径的父部分。

Split-Path 命令返回字符串。 它不会 返回 FileInfo 或其他项对象,如 *-Item 命令。

示例

示例 1:获取路径的限定符

Split-Path -Path "HKCU:\Software\Microsoft" -Qualifier
HKCU:

此命令仅返回路径的限定符。 限定符是驱动器。

示例 2:显示路径的文件名部分

使用 Leaf 参数时,Split-Path 仅返回提供的路径字符串中的最后一项,无论该项是文件还是目录。

Split-Path -Path .\folder1\*.txt -Leaf
*.txt
Split-Path -Path .\folder1\*.txt -Leaf -Resolve
file1.txt
file2.txt

使用 Resolve 参数时,Split-Path 解析提供的路径字符串并返回路径引用的项。

示例 3:获取父容器

使用 Parent 参数时,Split-Path 仅返回提供的路径字符串的父容器部分。 如果 Path 字符串不包含父容器,则 Split-Path 返回空字符串。

Split-Path -Path .\folder1\file1.txt -Parent
.\folder1
Split-Path -Path .\folder1\file1.txt -Parent -Resolve
D:\temp\test\folder1

使用 Resolve 参数时,Split-Path 解析提供的路径字符串,并返回父容器的完整路径。

示例 4:确定路径是否为绝对路径

此命令确定路径是相对路径还是绝对路径。 在这种情况下,由于路径相对于当前文件夹(由点(.)表示),因此返回 $false

Split-Path -Path ".\My Pictures\*.jpg" -IsAbsolute
False

示例 5:将位置更改为指定路径

此命令将位置更改为包含 PowerShell 配置文件的文件夹。

PS C:\> Set-Location (Split-Path -Path $PROFILE)
PS C:\Users\User01\Documents\PowerShell>

括号中的命令使用 Split-Path 仅返回内置 $PROFILE 变量中存储的路径的父级。 Parent 参数是默认的拆分位置参数。 因此,可以从命令中省略它。 括号指示 PowerShell 先运行命令。 这是移动到具有长路径名称的文件夹的一种有用方法。

示例 6:使用管道拆分路径

'C:\Users\User01\My Documents\My Pictures' | Split-Path
C:\Users\User01\My Documents

此命令使用管道运算符(|)将路径发送到 Split-Path。 该路径用引号括起来,以指示它是单个标记。

参数

-Credential

注释

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

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Extension

指示此 cmdlet 仅返回叶的扩展。 例如,在路径 C:\Test\Logs\Pass1.log中,它仅返回 .log

此参数是在 PowerShell 6.0 中引入的。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

ExtensionSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-IsAbsolute

指示此 cmdlet 返回 $true 路径是绝对路径,如果路径是相对路径,则返回 $false。 在 Windows 上,绝对路径字符串必须以提供程序驱动器说明符开头,例如 C:HKCU:。 相对路径以点(.)或点(..)开头。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

IsAbsoluteSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Leaf

使用 Leaf 参数时,Split-Path 仅返回提供的路径字符串中的最后一项,无论该项是文件还是目录。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

LeafSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-LeafBase

指示此 cmdlet 仅返回叶的基名称。 例如,在路径 C:\Test\Logs\Pass1.log中,它仅返回 Pass1

此参数是在 PowerShell 6.0 中引入的。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

LeafBaseSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-LiteralPath

指定要拆分的路径。 与 路径不同,LiteralPath 的值是按照输入内容原样使用的。 不会将任何字符解释为通配字符。 如果路径包含转义字符,请将它括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

参数属性

类型:

String[]

默认值:None
支持通配符:False
不显示:False
别名:PSPath, LP

参数集

LiteralPathSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-NoQualifier

指示此 cmdlet 返回没有限定符的路径。 对于 FileSystem 或注册表提供程序,限定符是提供程序路径的驱动器,例如 C:HKCU:。 例如,在路径 C:\Test\Logs\Pass1.log中,它仅返回 \Test\Logs\Pass1.log

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

NoQualifierSet
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Parent

Split-Path 仅返回提供的路径字符串的父容器部分。 如果 Path 字符串不包含父容器,则 Split-Path 返回空字符串。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

ParentSet
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Path

指定要拆分的路径。 允许使用通配符。 如果路径包含空格,请将它括在引号中。 还可以通过管道传递此 cmdlet 的路径。

参数属性

类型:

String[]

默认值:None
支持通配符:True
不显示:False

参数集

ParentSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
LeafSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
LeafBaseSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
ExtensionSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
QualifierSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
NoQualifierSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False
IsAbsoluteSet
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Qualifier

指示此 cmdlet 仅返回指定路径的限定符。 对于 FileSystem 或注册表提供程序,限定符是提供程序路径的驱动器,例如 C:HKCU:

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

QualifierSet
Position:1
必需:True
来自管道的值:False
来自管道的值(按属性名称):True
来自剩余参数的值:False

-Resolve

指示此 cmdlet 显示由生成的拆分路径引用的项,而不是显示路径元素。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

String

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

输出

String

此 cmdlet 返回文本字符串。 指定 Resolve 参数时,它将返回描述项位置的字符串。 它不返回表示项的对象,例如 FileInfoRegistryKey 对象。

Boolean

指定 IsAbsolute 参数时,此 cmdlet 返回 布尔值 值。

备注

  • 拆分位置参数(限定符扩展LeafBaseNoQualifier)都是独占的。 每个命令中只能使用一个。

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

  • 可以将 Path cmdlet 与多个提供程序一起使用。 其中包括 FileSystem、注册表和证书提供程序。

  • Split-Path 被设计用于处理任何供应商公开的数据。 若要列出会话中可用的提供程序,请键入 Get-PSProvider。 有关详细信息,请参阅 about_Providers