返回指定的路径部分。

语法

Split-Path [-IsAbsolute] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Leaf] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-NoQualifier] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Parent] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

Split-Path [-Qualifier] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

说明

Split-Path cmdlet 仅返回路径的指定部分,如父目录、子目录或文件名。它还显示拆分路径所引用的项,并指示该路径是相对路径还是绝对路径。

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

参数

-Credential <PSCredential>

指定有权执行此操作的用户帐户。默认值为当前用户。

键入用户名,例如“User01”或“Domain01\User01”。或者,输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的对象。如果键入用户名,则将提示您输入密码。

随同 Windows PowerShell 一起安装的任何提供程序都不支持此参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-IsAbsolute

如果路径为绝对路径,则返回 True;如果其为相对路径,则返回 False。绝对路径的长度大于零,并且不使用点 ( . ) 来指示当前路径。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Leaf

只返回路径中的最后一项或最后一个容器。例如,在路径“C:\Test\Logs\Pass1.log”中,该命令仅返回“Pass1.log”。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-LiteralPath <string[]>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-NoQualifier

返回无限定符的路径。对于 FileSystem 或 Registry 提供程序,限定符是提供程序路径的驱动器,例如,C: 或 HKCU:。例如,在路径“C:\Test\Logs\Pass1.log”中,该命令仅返回“\Test\Logs\Pass1.log”。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Parent

只返回路径所指定的项或容器的父容器。例如,在路径“C:\Test\Logs\Pass1.log”中,该命令返回“C:\Test\Logs”。Parent 参数是默认的拆分位置参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Path <string[]>

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

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-Qualifier

只返回指定路径的限定符。对于 FileSystem 或 Registry 提供程序,限定符是提供程序路径的驱动器,例如,C: 或 HKCU:。

是否为必需?

false

位置?

2

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Resolve

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.String

可以通过管道将包含路径的字符串传递给 Split-Path。

输出

System.String

Split-Path cmdlet 返回文本字符串。如果使用 Resolve 参数,则 Split-Path 返回一个表示项位置的字符串;而不返回表示项的对象,如 FileInfo 或 RegistryKey 对象。

说明

拆分位置参数(Qualifier、Parent、Leaf 和 NoQualifier)是互斥的。在每个命令中只能使用一个参数。

包含 Path 名词的 cmdlet (Path cmdlet) 采用路径名称作为参数,以所有 Windows PowerShell 提供程序都能够解释的简明格式返回名称。这些 cmdlet 用于需要在其中以特定格式显示全部或部分路径名称的程序或脚本中。您可以像使用 Dirname、Normpath、Realpath、Join 或其他路径操作程序那样使用这些 cmdlet。

可以将路径 cmdlet 与某些提供程序一起使用,包括 FileSystem、Registry 和 Certificate 提供程序。

Split-Path cmdlet 可使用由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“Get-PSProvider”。有关详细信息,请参阅 about_Providers。

示例 1

C:\PS>split-path "HKCU:\Software\Microsoft" -qualifier

HKCU:

说明
-----------
此命令只返回路径的限定符(驱动器)。






示例 2

C:\PS>split-path "C:\Test\Logs\*.log" -leaf -resolve

Pass1.log
Pass2.log
...

说明
-----------
此命令显示拆分路径所引用的文件。因为此路径拆分至最后一项(“叶”),所以将仅显示路径的文件名。

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

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






示例 3

C:\PS>split-path "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt"

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

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






示例 4

C:\PS>split-path ".\My Pictures\*.jpg" -IsAbsolute

False

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






示例 5

C:\PS>set-location (split-path $profile)

PS C:\Documents and Settings\juneb\My Documents\WindowsPowerShell>

说明
-----------
此命令将当前位置更改为包含 Windows PowerShell 配置文件的目录。
圆括号中的命令使用 Split-Path cmdlet 来只返回内置 $Profile 变量中存储的路径的父项。(Parent 参数为默认的拆分位置参数,因此可以在命令中省略该参数。)圆括号指示 Windows PowerShell 先执行该命令。通过此方式,可以便捷地导航到具有长路径名的目录。






示例 6

C:\PS>'C:\Documents and Settings\User01\My Documents\My Pictures' | split-path

C:\Documents and Settings\User01\My Documents

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






另请参阅




目录