PowerShell を使用して名前で特定のファイルを検索する
この記事では、PowerShell を使用して特定のファイルを見つける方法を示します。
Get-ChildItem
コマンドレットは、名前または拡張子でファイルを検索するために使用できる便利な PowerShell ユーティリティです。 Windows エクスプローラーで検索するよりも、ファイルを簡単かつ迅速に見つけることができます。
PowerShell Get-ChildItem
を使用して名前で特定のファイルを検索する
PowerShell で Get-ChildItem
コマンドレットを使用して、1つまたは複数の場所にあるファイルとフォルダーの一覧を表示できます。 検索パターンを追加して、出力を特定のファイルに絞り込むことができます。
いくつかの例を見てみましょう。
.txt
拡張子を持つ現在のフォルダー内のすべてのファイルを見つけたいと仮定すると、どうすればよいでしょうか?
以下に示すように、Get-ChildItem
コマンドを実行します。
PS C:\Users> Get-ChildItem *.txt
上記のコマンドは、.txt
拡張子を持つ Users
ディレクトリ内のすべてのファイルを検索します。 C:\
ドライブのルートにあるすべてのファイルを表示するにはどうすればよいでしょうか?
PS C:\pc\Users> Get-ChildItem -Path C:\
上記のコマンドで、Git-ChildItem
コマンドレットは C:\
を -Path
パラメータとして受け取り、その場所に保存されているすべてのファイルとディレクトリを表示します。
-Recurse
パラメータを追加して、ドライブ C:\
の場所にあるすべてのファイルを検索して一覧表示できます。 ユーザーがアクセスできないファイルが存在する場合、コマンドはエラーをスローします。
エラーが発生した場合に操作を続行するには、以下に示すようにコマンドを実行します。
PS C:\pc\Users> Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue
除外するパターンを指定することもできます。 以下に例を示します。
PS C:\pc\Users> Get-ChildItem -Exclude *.exe -Recurse
上記のコマンドは、Users
ディレクトリに存在するサブディレクトリ内のすべてのファイルを一覧表示し、.exe
ファイル拡張子を持つファイルを除外します。
-Filter
パラメーターを使用して、検索を特定のファイル拡張子に絞り込むこともできます。 以下の例をご覧ください。
PS C:\pc\Users> Get-ChildItem -Filter *.txt -Recurse
上記のコマンドは、拡張子が .txt
のファイルのみを一覧表示します。 特定のファイル名を検索したい場合はどうすればよいでしょうか?
以下に示すように、Get-ChildItem
コマンドを実行します。
PS C:\pc\Users> Get-ChildItem -recurse -filter "Trial" -File
上記のコマンドは、現在のフォルダーで Insert
に一致するファイル名を持つファイルを再帰的に検索します。 以下に示すように、-Path
パラメーターを使用してフォルダーを指定できます。
PS C:\pc\Users> Get-ChildItem -recurse -filter "Trial" -File -Path C:\
上記のコマンドは、C:\
ドライブで Insert
に一致するファイル名を持つファイルを再帰的に検索します。 Get-ChildItem
を完全に入力する代わりに、gci
エイリアスを使用できます。
または、次を実行できます。
PS C:\pc\Users> Get-ChildItem -Recurse | Where {$_.Name -match 'Insert'} | Select Fullname
上記のコマンドでは、Get-ChildItem
コマンドレットが現在のフォルダー内のファイルを再帰的に検索します。 Where-Object
コマンドレットは、Insert
に一致するファイル名プロパティを比較し、ファイルの完全な名前を出力します。
簡単に言うと、Get-ChildItem
コマンドレットを使用して、PowerShell で特定のファイルを見つけることができます。
検索を絞り込むために使用できるさまざまなパラメーターがあります。 PowerShell を使用すると、Windows エクスプローラーで検索するよりもはるかに簡単で高速です。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn