Share via


Split-Path

傳回路徑的指定部分。

Syntax

Split-Path
     [-Path] <String[]>
     [-Parent]
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Leaf
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -LeafBase
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Extension
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -Qualifier
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     -NoQualifier
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     [-Path] <String[]>
     [-Resolve]
     -IsAbsolute
     [-Credential <PSCredential>]
     [<CommonParameters>]
Split-Path
     -LiteralPath <String[]>
     [-Resolve]
     [-Credential <PSCredential>]
     [<CommonParameters>]

Description

Cmdlet Split-Path 只會傳回路徑的指定部分,例如父資料夾、子資料夾或檔名。 它也可以取得分割路徑所參照的項目,並分辨路徑是相對路徑或絕對路徑。

您可以使用這個 Cmdlet 來只取得或只送出路徑的選取部分。

範例

範例 1:取得路徑的限定符

Split-Path -Path "HKCU:\Software\Microsoft" -Qualifier

HKCU:

此命令只會傳回路徑的限定符。 限定符是磁碟驅動器。

範例 2:顯示檔名

Split-Path -Path "C:\Test\Logs\*.log" -Leaf -Resolve

Pass1.log
Pass2.log
...

這個命令會顯示分割路徑所參照的檔案。 因為此路徑會分割成最後一個專案,也稱為分葉,所以命令只會顯示檔名。

Resolve 參數會指示Split-Path顯示分割路徑所參考的專案,而不是顯示分割路徑。

如同所有 Split-Path 命令,此命令會傳回字串。 它不會傳回代表檔案的 FileInfo 物件。

範例 3:取得父容器

Split-Path -Parent "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt"

C:\WINDOWS\system32\WindowsPowerShell\V1.0

這個命令只會傳回路徑的父容器。 因為它不包含任何參數來指定分割, Split-Path 所以會使用分割位置預設值,也就是 Parent

範例 4:判斷路徑是否為絕對

Split-Path -Path ".\My Pictures\*.jpg" -IsAbsolute

False

這個命令會判斷路徑是相對路徑或絕對路徑。 在此情況下,因為路徑相對於目前資料夾,以點 (.) 表示,所以會傳 $False回 。

範例 5:將位置變更為指定的路徑

PS C:\> Set-Location (Split-Path -Path $profile)
PS C:\Documents and Settings\User01\My Documents\WindowsPowerShell>

此命令會將您的位置變更為包含 PowerShell 設定檔的資料夾。

括弧中的命令只會使用 Split-Path 來傳回儲存在內 $Profile 建變數中之路徑的父代。 Parent 參數是預設的分割位置參數。 因此,您可以從 命令中省略它。 括弧會指示PowerShell先執行命令。 這是移至具有長路徑名稱的資料夾的實用方式。

範例 6:使用管線分割路徑

'C:\Documents and Settings\User01\My Documents\My Pictures' | Split-Path

C:\Documents and Settings\User01\My Documents

這個指令會使用管線運算子 (|) 將路徑傳送至 Split-Path。 路徑會以引弧括住,以指出它是單一令牌。

參數

-Credential

注意

任何隨 PowerShell 一起安裝的提供者都不支援此參數。 若要模擬其他使用者,或在執行此 Cmdlet 時提高您的認證,請使用 Invoke-Command

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Extension

表示這個 Cmdlet 只會傳回分葉的延伸。 例如,在路徑 C:\Test\Logs\Pass1.log中,只會 .log傳回 。

此參數是在 PowerShell 6.0 中引進。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-IsAbsolute

指出這個 Cmdlet 如果路徑是絕對路徑,而且$False是相對的,則傳回 $True 。 絕對路徑的長度大於零,且不會使用點 (.) 來表示目前的路徑。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Leaf

表示這個 Cmdlet 只會傳回路徑中的最後一個專案或容器。 例如,在路徑 C:\Test\Logs\Pass1.log中,只會 Pass1.log傳回 。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LeafBase

表示這個 Cmdlet 只會傳回分葉的基底名稱。 例如,在路徑 C:\Test\Logs\Pass1.log中,只會 Pass1傳回 。

此參數是在 PowerShell 6.0 中引進。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定要分割的路徑。 與 Path 不同,LiteralPath 的值將完全依照其輸入值來使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號中。 單引號會告訴PowerShell不要將任何字元解譯為逸出序列。

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoQualifier

表示這個 Cmdlet 會傳回沒有限定符的路徑。 針對 FileSystem 或登錄提供者,限定符是提供者路徑的磁碟驅動器,例如 C:HKCU:。 例如,在路徑 C:\Test\Logs\Pass1.log中,只會 \Test\Logs\Pass1.log傳回 。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Parent

表示這個 Cmdlet 只會傳回專案或路徑所指定容器的父容器。 例如,在路徑 C:\Test\Logs\Pass1.log中,它會傳 C:\Test\Logs回 。 Parent 參數是預設的分割位置參數。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Path

指定要分割的路徑。 允許使用萬用字元。 如果路徑包含空格,請將它括在引號中。 您也可以使用管線將路徑傳送至此 Cmdlet。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Qualifier

表示這個 Cmdlet 只會傳回指定路徑的限定符。 針對 FileSystem 或登錄提供者,限定符是提供者路徑的磁碟驅動器,例如 C:HKCU:

Type:SwitchParameter
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Resolve

表示這個 Cmdlet 會顯示產生的分割路徑所參考的專案,而不是顯示路徑專案。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

String

您可以使用管線將包含路徑的字串傳送至此 Cmdlet。

輸出

String

此 Cmdlet 會傳回文字字串。 當您指定 Resolve 參數時,它會傳回描述專案位置的字串。 它不會傳回代表項目的物件,例如 FileInfoRegistryKey 物件。

Boolean

當您指定 IsAbsolute 參數時,此 Cmdlet 會傳回 布爾 值。

備註

  • 分割位置參數 (限定符系、延伸模組、分葉、分葉、分葉基底NoQualifier) 都是獨佔的。 在每個命令中只能使用一個。

  • 包含 Path 名詞的 Cmdlet (Path Cmdlet) 使用路徑名稱,並以精簡格式傳回所有 PowerShell 提供者可以解譯的名稱。 其設計目的是要在您想要以特定格式顯示路徑名稱的所有或部分的程式和腳本中使用。 使用它們的方式是使用 DirnameNormpath、RealpathJoin 或其他路徑操作工具。

  • 您可以將 Path Cmdlet與數個提供者搭配使用。 其中包括 FileSystem、登錄和憑證提供者。

  • Split-Path 是設計來使用任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers