PowerShell でフォルダーが存在するか確認する方法
-
Test-PathCmdlet を使用して PowerShell でフォルダーの存在を確認する -
System.IO.Directoryを使用して PowerShell でフォルダーの存在を確認する -
Get-ItemCmdlet を使用して 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 でフォルダーが存在するかどうかを確認する方法についてのアイデアを提供したことを願っています。
