傳回指定的路徑部分。
語法
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 也可以顯示分割路徑所參照的項目,並且區分它是相對路徑還是絕對路徑。
您可以使用這個 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[]>
指定要分割的路徑。LiteralPath 與 Path 不同,係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 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 提供者都能解譯的簡明格式傳回名稱。其設計用意是供程式和指令碼使用,以視需要顯示特定格式的完整或部分路徑名稱。其用法有如 Dirname、Normpath、Realpath、Join 或其他任何路徑操作指令。
此 Path 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 ... 描述 ----------- 這個命令會顯示分割路徑所參照的檔案。因為這個路徑已經分割成最後一個項目 (即 "leaf"),所以此時只會顯示路徑的檔案名稱。 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,而且會以單引號括住路徑,表示該路徑為單一語彙基元。
請參閱