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 |
輸入
您可以使用管線將包含路徑的字串傳送至此 Cmdlet。
輸出
此 Cmdlet 會傳回文字字串。 當您指定 Resolve 參數時,它會傳回描述專案位置的字串。 它不會傳回代表項目的物件,例如 FileInfo 或 RegistryKey 物件。
當您指定 IsAbsolute 參數時,此 Cmdlet 會傳回 布爾 值。
備註
分割位置參數 (限定符、父系、延伸模組、分葉、分葉、分葉基底和 NoQualifier) 都是獨佔的。 在每個命令中只能使用一個。
包含 Path 名詞的 Cmdlet (Path Cmdlet) 使用路徑名稱,並以精簡格式傳回所有 PowerShell 提供者可以解譯的名稱。 其設計目的是要在您想要以特定格式顯示路徑名稱的所有或部分的程式和腳本中使用。 使用它們的方式是使用 Dirname、Normpath、Realpath、Join 或其他路徑操作工具。
您可以將 Path Cmdlet與數個提供者搭配使用。 其中包括 FileSystem、登錄和憑證提供者。
Split-Path
是設計來使用任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入Get-PSProvider
。 如需詳細資訊,請參閱 about_Providers。