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