パスのすべての要素が存在するかどうかを確認します。
構文
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 コマンドレットは、パスのすべての要素が存在するかどうかを確認します。すべての要素が存在すれば TRUE ($true) を返し、不足している要素があれば FALSE ($false) を返します。また、パス構文が有効かどうかと、パスがコンテナーまたはターミナル (リーフ) 要素を指しているかどうかも示します。
パラメーター
-Credential <PSCredential>
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。既定値は現在のユーザーです。
"User01" や "Domain01\User01" などユーザー名を入力します。または、Get-Credential コマンドレットで生成されるような PSCredential オブジェクトを入力します。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。
このパラメーターは、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[]>
テストするパスを指定します。Path と異なり、LiteralPath パラメーターの値は入力したとおりに使用されます。ワイルドカードとして解釈される文字はありません。パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。単一引用符で囲んだ文字はエスケープ シーケンスとして解釈されません。
必須 |
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>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.String パイプを使用してパス (リテラル パスではない) を含む文字列を Test-Path に渡すことができます。 |
出力 |
System.Boolean このコマンドレットは、パスが存在している場合は "True" を返し、そうでない場合は "False" を返します。 |
注
Path という名詞を含むコマンドレット (Path コマンドレット) は、パス名を操作し、すべての Windows PowerShell プロバイダーが解釈できる簡潔な形式の名前を返します。プログラムやスクリプトで、パス名の全部または一部を特定の形式で表示するために使用することを目的としています。Dirname、Normpath、Realpath、Join など、他のパス操作コマンドレットと同じように使用します。
Path コマンドレットは、FileSystem、Registry、Certificate など、いくつかのプロバイダーで使用できます。
Test-Path コマンドレットは、プロバイダーによって公開されているデータを使用するように設計されています。セッションで使用可能なプロバイダーの一覧を表示するには、「Get-PSProvider」と入力します。詳細については、「about_Providers」を参照してください。
例 1
C:\PS>test-path -path "C:\Documents and Settings\NicoleH" 説明 ----------- このコマンドは、パス内の要素がすべて存在するかどうかを示します。要素とは、C: ディレクトリ、Documents and Settings ディレクトリ、および NicoleH ディレクトリです。欠けているものがあれば、コマンドレットは FALSE を返します。それ以外の場合には、TRUE を返します。
例 2
C:\PS>test-path -path $profile C:\PS>test-path -path $profile -IsValid 説明 ----------- これらのコマンドは、Windows PowerShell プロファイルのパスをテストします。 最初のコマンドは、パス中のすべての要素が存在するかどうかを判断します。2 番目のコマンドは、パスの構文が正しいかどうかを確認します。この例では、パスは 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 ファイルなので、コマンドレットは 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 説明 ----------- これらのコマンドは、Test-Path コマンドレットと共に Windows PowerShell レジストリ プロバイダーを使用します。 最初のコマンドは、Microsoft.PowerShell レジストリ キーのレジストリ パスが、システム上で正しいかどうかを判定します。Windows PowerShell が正しくインストールされている場合、コマンドレットは TRUE を返します。 Test-Path はすべての Windows PowerShell プロバイダーに対して正常に機能するわけではありません。たとえば、Test-Path を使用してレジストリ キーのパスをテストできますが、レジストリ エントリのパスをテストすると、レジストリ エントリが存在しても常に FALSE が返されます。
関連項目