如何在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