PowerShell でフォルダーが存在するか確認する方法
-
Test-Path
Cmdlet を使用して PowerShell でフォルダーの存在を確認する -
System.IO.Directory
を使用して PowerShell でフォルダーの存在を確認する -
Get-Item
Cmdlet を使用して PowerShell でフォルダーの存在を確認する - 結論

PowerShell は、さまざまなファイルおよびフォルダー操作を実行できる強力なツールです。システム上のファイルとフォルダーを作成、コピー、移動、名前変更、削除、表示することができます。
ファイルおよびフォルダー管理は PowerShell の機能であり、ユーザーはこれらのエンティティを操作するだけでなく、システム内での存在を確認することもできます。このチュートリアルでは、PowerShell を使用してシステム内のフォルダーの存在を確認するためのさまざまな方法を探ります。
Test-Path
Cmdlet を使用して PowerShell でフォルダーの存在を確認する
Test-Path
cmdlet は、すべてのパス要素が存在するかどうかを決定します。すべての要素が存在する場合は True
を、欠如している場合は False
を返します。
構文:
Test-Path -Path "C:\Path\to\Folder"
パラメーター:
-Path
:このパラメーターは、存在を確認したいフォルダーまたはファイルのパスを示します。この場合、"C:\Path\to\Folder"
に設定されており、そのパスにあるフォルダーが存在するかを確認することを示しています。
たとえば、次のコマンドは、パス C:\New\complex
のすべての要素が存在するかどうかを確認します。
Test-Path -Path "C:\New\complex"
出力:
True
これは、complex
フォルダーが C:\New
ディレクトリに存在することを意味します。
次のコマンドは、C:\New
ディレクトリに Documents
フォルダーが存在するかどうかを確認します。
Test-Path -Path "C:\New\Documents"
出力:
False
したがって、Documents
フォルダーは C:\New
ディレクトリに存在しません。
True
/False
の代わりに詳細情報を返したい場合は、次のように if
文を使用できます。
if (Test-Path -Path "C:\New\Documents") {
Write-Host "The given folder exists."
}
else {
Write-Host "The given folder does not exist."
}
このコードでは、Test-Path
cmdlet を使用して、フォルダー"C:\New\Documents"
がシステムに存在するかどうかを確認しています。フォルダーが存在する場合、Write-Host
を使用して"The given folder exists"
と表示します。
フォルダーが存在しない場合、コンソールに"The given folder does not exist"
と表示します。
出力:
The given folder does not exist.
結果として、"C:\New\Documents"
フォルダーはシステムに存在せず、Test-Path
cmdlet は False
を返します。私たちのコードは else ブロックをトリガーし、コンソールに"The given folder does not exist."
というメッセージを表示します。
この出力は、指定されたフォルダーがシステム内の提供されたパスに存在しなかったことを正確に示しています。
System.IO.Directory
を使用して PowerShell でフォルダーの存在を確認する
.NET
Framework の System.IO.Directory
クラスは、ディレクトリおよびサブディレクトリを作成、移動、削除、および列挙するための静的メソッドを提供します。提供されたパスがすでにシステムに存在するディレクトリを指しているかどうかを確認するために、その Exists()
メソッドを使用できます。
パスが存在する場合は True
を、存在しない場合は False
を返します。
[System.IO.Directory]::Exists("C:\New\complex")
出力:
True
[System.IO.Directory]::Exists("C:\New\complex")
は、使用されるパラメーターがありません。代わりに、PowerShell でフォルダーが存在するかを確認するためにメソッドを直接呼び出しています。
さて、C:\New
ディレクトリに Documents
フォルダーが存在するかどうかを確認しましょう。
[System.IO.Directory]::Exists("C:\New\Documents")
上記のコマンドでは、"System.IO.Directory"
という.NET Framework を使用してフォルダーの存在を確認しています。このツールには、このタスクを助ける"Exists()"
という機能があります。
"C:\New\Documents"
の場所を見て、そこにフォルダーがあるかどうかを教えてもらいます。フォルダーが見つかれば True
が返されますが、フォルダーが存在しない場合は False
と言います。
出力:
False
出力は"False"
です。これは、System.IO.Directory::Exists()
が指定されたパスに"C:\New\Documents"
フォルダーが存在しないことを示していることを意味します。
Get-Item
Cmdlet を使用して PowerShell でフォルダーの存在を確認する
Get-Item
は、指定されたパスのアイテムを取得します。パスがシステム上に存在する場合、ディレクトリの Mode
、LastWriteTime
、Length
、および Name
を印刷します。
Get-Item C:\Users\Public
このコマンドでは、C:\Users\Public
にある Public
フォルダーの情報を取得しています。このコマンドを PowerShell で実行すると、コンソールにフォルダーに関するさまざまな詳細が表示されます。
出力:
Directory: C:\Users
Mode LastWriteTime Length Name
---- ------------- ------ ----
d-r--- 10/15/2023 6:35 PM Public
指定されたパスが存在しない場合、存在しないことを示すエラーメッセージが表示されます。以下の例のように。
Get-Item C:\Users\Publics
出力:
Get-Item : Cannot find path 'C:\Users\Publics' because it does not exist.
At line:1 char:1
+ Get-Item C:\Users\Publics
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\Publics:String) [Get-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand
結論
これらのアプローチは、PowerShell でフォルダーの存在を確認するための異なる方法を提供し、特定の要件に応じてそれらを変更できます。これらの技術は、フォルダーだけでなく、システム内のファイルの存在を確認するためにも使用できます。
この記事が、PowerShell でフォルダーが存在するかどうかを確認する方法についてのアイデアを提供したことを願っています。