如何在 PowerShell 中使用 Split-Path 命令?


Split-Path 用于检索指定路径的一部分,例如父文件夹、子文件夹或文件名。它还可以判断路径是相对路径还是绝对路径。

此命令支持一些参数,这些参数有助于检索指定路径的一部分。假设我们有以下可执行文件路径,我们将看到 Split-Path 命令如何检索父文件夹和子文件夹以及根目录。

'C:\Temp\PsExec.exe'

默认的 Split-Path 命令将检索文件的父文件夹名称。

PS C:\> Split-Path 'C:\Temp\PsExec.exe'
C:\Temp

这里默认参数是 -Parent,它检索父文件夹路径。以上命令类似于:

PS C:\> Split-Path 'C:\Temp\PsExec.exe' -Parent
C:\Temp

如果您只需要文件名,则使用 -Leaf 参数。

PS C:\> Split-Path 'C:\Temp\PsExec.exe' -Leaf
PsExec.exe

要检索根目录,需要使用 -Qualifier 参数。

PS C:\> Split-Path 'C:\Temp\PsExec.exe' -Qualifier
C:

如果要检查路径是绝对路径还是相对路径,则使用 -IsAbsolute 参数。

PS C:\> Split-Path 'C:\Temp\PsExec.exe' -IsAbsolute
True

PS C:\Temp> Split-Path .\PsExec.exe -IsAbsolute
False

现在,假设您想要文件夹内的文件名,如果我们编写以下命令,则不会得到预期的输出。

输出

PS C:\> Split-Path C:\Scripts\* -Leaf
*

输出结果为 *,命令没有检索文件/文件夹名称。要解决此问题,使用 -Resolve 参数。

Split-Path C:\scripts\* -Leaf -Resolve

输出

DSCTest
Lab01
MyModules
VS_Installation
DscTest.ps1
Servers.txt

您可以看到文件和文件夹名称。同样,如果您想要检索特定扩展名的文件,可以使用 -Leaf 和 -Resolve 两个参数。

PS C:\> Split-Path C:\scripts\*.ps1 -Leaf -Resolve
DscTest.ps1

类似地,您可以将 Split-Path 命令应用于注册表。

Split-Path 'HKCU:\Software\Microsoft\Internet Explorer\Control Panel\'
HKCU:\Software\Microsoft\Internet Explorer

Split-Path 'HKCU:\Software\Microsoft\Internet Explorer\Control Panel\' -Qualifier
HKCU:

Split-Path 'HKCU:\Software\Microsoft\Internet Explorer\Control Panel\' -Leaf
Control Panel

更新于: 2020年11月11日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.