傳回指定的路徑部分。

語法

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,而且會以單引號括住路徑,表示該路徑為單一語彙基元。






請參閱




目錄