Split-Path

返回指定的路径部分。

语法

Split-Path
     [-Path] <String[]>
     [-Parent]
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Leaf
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -LeafBase
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Extension
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Qualifier
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -NoQualifier
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     [-Resolve]
     -IsAbsolute
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     -LiteralPath <String[]>
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]

说明

Split-Path cmdlet 只返回路径的指定部分,例如父文件夹、子文件夹或文件名。 它也可以获取拆分路径所引用的项,并指示该路径是相对路径还是绝对路径。

使用此 cmdlet 可以只获取或只提交路径的选定部分。

示例

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

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

HKCU:

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

示例 2:显示文件名

Split-Path -Path "C:\Test\Logs\*.log" -Leaf -Resolve

Pass1.log
Pass2.log
...

此命令显示拆分路径所引用的文件。 由于此路径拆分为最后一项(也称为叶),因此该命令仅显示文件名。

Resolve 参数指示 Split-Path 显示拆分路径所引用的项,而不是显示拆分路径。

与所有 Split-Path 命令一样,此命令也返回字符串, 它不返回表示文件的 FileInfo 对象。

示例 3:获取父容器

Split-Path -Parent "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt"

C:\WINDOWS\system32\WindowsPowerShell\V1.0

此命令只返回路径的父容器。 由于不包括任何用于指定拆分的参数,因此 Split-Path 将使用拆分位置默认值 Parent

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

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

False

此命令确定路径是相对路径还是绝对路径。 在此示例中,由于路径相对于由点 (.) 表示的当前目录,因此该命令返回 $False

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

PS C:\> Set-Location (Split-Path -Path $profile)
PS C:\Documents and Settings\User01\My Documents\WindowsPowerShell>

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

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

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

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

C:\Documents and Settings\User01\My Documents

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

参数

-Credential

注意

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

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Extension

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IsAbsolute

指示此 cmdlet 在路径为绝对路径时返回 $True,而在路径为相对路径时则返回 $False。 绝对路径的长度大于零,并且不使用点 (.) 表示当前路径。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Leaf

指示此 cmdlet 只返回路径中的最后一项或最后一个容器。 例如,在路径 C:\Test\Logs\Pass1.log 中,它仅返回 Pass1.log

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LeafBase

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定要拆分的路径。 与 Path 不同,LiteralPath 的值严格按照所键入的形式使用。 不会将任何字符解释为通配字符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoQualifier

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Parent

指示此 cmdlet 只返回路径所指定的项或容器的父容器。 例如,在路径 C:\Test\Logs\Pass1.log 中,它返回 C:\Test\LogsParent 参数是默认的拆分位置参数。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Path

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

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Qualifier

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

Type:SwitchParameter
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Resolve

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

String

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

输出

String

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

Boolean

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

备注

  • 拆分位置参数(QualifierParentExtensionLeafLeafBaseNoQualifier)是互斥的。 在每个命令中只能使用一个参数。

  • 包含 Path 名词的 cmdlet (Path cmdlet) 使用路径名称,以所有 PowerShell 提供程序都能够解释的简明格式返回名称。 这些 cmdlet 用于需要在其中以特定格式显示全部或部分路径名称的程序或脚本中。 你可以按照使用 DirnameNormpathRealpathJoin 或其他路径操作程序的方式使用这些 cmdlet。

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

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