判斷路徑的所有元素是否都存在。

語法

Test-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

Test-Path [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {<Any> | <Container> | <Leaf>}] [-UseTransaction] [<CommonParameters>]

描述

Test-Path Cmdlet 會判斷路徑的所有元素是否都存在。如果所有元素都存在,會傳回 TRUE ($true),若遺失任何一個元素,則傳回 FALSE ($false)。該 Cmdlet 也可以分辨路徑語法是否有效,以及是容器的路徑還是終端 (分葉) 元素的路徑。

參數

-Credential <PSCredential>

指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。

請輸入使用者名稱,例如 "User01" 或 "Domain01\User01"。或者輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,將會提示您提供密碼。

所有隨 Windows PowerShell 安裝的提供者都不支援此參數。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Exclude <string[]>

忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Filter <string>

指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Include <string[]>

只測試指定的路徑。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-IsValid

判斷路徑的語法是否正確,無論路徑的元素存在與否。當路徑語法有效時,這個參數會傳回 TRUE,否則傳回 FALSE。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-LiteralPath <string[]>

指定要測試的路徑。LiteralPath 參數的值會取用實際輸入的內容做為參數值,與 Path 參數不同。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Path <string[]>

指定要測試的路徑。允許使用萬用字元。如果路徑中包含空格,請將其置於引號內。參數名稱 ("Path") 為選擇項。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-PathType <TestPathType>

分辨路徑中的最後一個元素是否為特定類型。當元素屬於指定的類型時,這個參數會傳回 TRUE,否則傳回 FALSE。

有效的值包括:

-- Container (容器):包含其他元素 (例如目錄或登錄機碼) 的元素。

-- Leaf (分葉):不包含其他元素 (例如檔案) 的元素。

-- Any (任一):可以是路徑、也可以是分葉。分辨路徑中的最後一個元素是否為特定類型。當元素屬於指定的類型時傳回 TRUE,否則傳回 FALSE。

必要?

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

您可經由管道將包含路徑 (但不是常值路徑) 的字串輸出至 Test-Path。

輸出

System.Boolean

如果此路徑存在,該 Cmdlet 會傳回 "True",否則傳回 "False"。

附註

有 Path 名詞的 Cmdlet (Path Cmdlet) 會處理路徑名稱,並以所有 Windows PowerShell 提供者都能解譯的簡明格式傳回名稱。其設計用意是供程式和指令碼使用,以視需要顯示特定格式的完整或部分路徑名稱。其用法有如 Dirname、Normpath、Realpath、Join 或其他任何路徑操作指令。

此 Path Cmdlet 能與多種提供者搭配使用,包括 FileSystem 提供者、Registry 提供者及 Certificate 提供者。

Test-Path Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PSProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>test-path -path "C:\Documents and Settings\NicoleH"

描述
-----------
這個命令會分辨路徑中的所有元素是否都存在,也就是 C: 目錄、Documents and Settings 目錄以及 NicoleH 目錄。如果有任一元素遺失,Cmdlet 會傳回 FALSE,否則會傳回 TRUE。






範例 2

C:\PS>test-path -path $profile

C:\PS>test-path -path $profile -IsValid

描述
-----------
這些命令會測試指向 Windows PowerShell 設定檔的路徑。

第一個命令會判斷路徑中的所有元素是否都存在。第二個命令會判斷路徑的語法是否正確。在這個範例中,路徑測試傳回 FALSE,但是語法是正確的 (TRUE)。這些命令會使用 $profile,也就是指向設定檔位置的自動變數,即使沒有設定檔時也是如此。

如需自動變數的詳細資訊,請參閱 about_Automatic_Variables。






範例 3

C:\PS>test-path -path "C:\CAD\Commercial Buildings\*" -exclude *.dwg

描述
-----------
這個命令會分辨 Commercial Buildings 目錄中是否除 .dwg 以外的其他任何檔案。

此命令會使用 Path 參數來指定路徑。因為路徑包含空格,所以會以引號括住空格。路徑結尾的星號表示 Commercial Building 目錄的內容 (如果像這個路徑一樣,屬於較長的路徑,請輸入路徑的前幾個字母,然後使用 TAB 鍵完成路徑)。

這個命令會使用 Exclude 參數,指定於評估中省略的檔案。

在這個案例中,因為目錄只包含 .dwg 檔案,所以結果為 FALSE。






範例 4

C:\PS>test-path -path $profile -pathtype leaf

描述
-----------
這個命令會分辨儲存於 $profile 變數中的路徑是否指向檔案。在這個案例中,由於 Windows PowerShell 設定檔為 .ps1 檔案,所以 Cmdlet 傳回 TRUE。






範例 5

C:\PS>test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

TRUE

C:\PS> test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy
FALSE

描述
-----------
這些命令會搭配 Windows PowerShell 登錄提供者使用 Test-Path Cmdlet。

第一個命令測試系統上的 Microsoft.PowerShell 登錄機碼路徑是否正確。如果已 Windows PowerShell 正確安裝,則 Cmdlet 會傳回 TRUE。

Test-Path 並無法適用於所有的 Windows PowerShell 提供者。例如,您可以使用 Test-Path 測試登錄機碼的路徑,但是如果使用它測試登錄項目路徑,則即使登錄項目確實存在,也一定會傳回 FALSE。






請參閱




目錄