使用 PowerShell の Get-ChildItem Cmdlet をファイルとディレクトリーに適用する
PowerShell でファイルとディレクトリーを操作するための強力なツールである Get-ChildItem cmdlet について、以下の記事ではこのCmdlet を使用してファイルシステムをナビゲートし、操作する方法について説明します。
最初に
PowerShell をインストールした状態で、この記事を始める前に、基本的なコマンドを実行して PowerShell 環境に慣れさせてください。
Get-ChildItem Cmdlet の理解
Get-ChildItem cmdlet は、指定されたパス内のファイルとディレクトリーを取得するために使用されます。デフォルトでは、検索結果は配列オブジェクトとして返されます。
以下は基本的な構文です:
Get-ChildItem [-Path] <string> [-Filter <string>] [-Recurse]
Get-ChildItem を使用してファイルとディレクトリーを一覧表示する
まず、現在のディレクトリー内の全てのファイルとディレクトリーを一覧表示します:
PS C:\> Get-ChildItem
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/10/2022 3:45 PM Folder1
d----- 5/10/2022 3:45 PM Folder2
-a--- 5/10/2022 3:45 PM file.txt
この例では、Cmdlet にパラメーターを指定していないため、現在のディレクトリー内の全てのファイルとディレクトリーが一覧表示されます。
ファイルとディレクトリーをフィルタリングする
-Filter パラメーターを使用して、ファイルとディレクトリーをフィルタリングします。例えば:
PS C:\> Get-ChildItem -Filter *.txt
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/10/2022 3:45 PM file.txt
この例では、.txt 拡張子のファイルをフィルタリングしています。
ファイルとディレクトリーの再帰検索
-Recurse パラメーターを使用して、指定されたパス内の全てのファイルとディレクトリーを再帰的に検索します。例えば:
PS C:\> Get-ChildItem -Path C:\ -Recurse
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/10/2022 3:45 PM Folder1
d----- 5/10/2022 3:45 PM Folder2
-a--- 5/10/2022 3:45 PM file.txt
Directory: C:\Folder1\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/10/2022 3:45 PM subfile.txt
Directory: C:\Folder2\
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/10/2022 3:45 PM anotherfile.txt
この例では、C:\ ディレクトリー内の全てのファイルとディレクトリーを再帰的に検索しています。
ファイルとディレクトリーを操作する
Get-ChildItem cmdlet を基本的な使用法からやや高度なスケナリオまで、マスターした後、以下のような操作を行うことができます。
ファイル名の変更
Rename-Item cmdlet を使用して、ファイル名を変更します。例えば:
PS C:\> Get-ChildItem -Path C:\Folder1\subfile.txt | Rename-Item -NewName newfile.txt
Directory: C:\Folder1
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 5/10/2022 3:45 PM newfile.txt
この例では、subfile.txt ファイルを newfile.txt に変更しています。
ファイルやディレクトリーの削除
Remove-Item cmdlet を使用して、ファイルやディレクトリーを削除します。例えば:
PS C:\> Get-ChildItem -Path C:\Folder2\anotherfile.txt | Remove-Item
Confirm
Are you sure you want to remove 'C:\Folder2\anotherfile.txt'?
[Y] Yes [A] No [H] Help (default is "Y")
この例では、anotherfile.txt ファイルを削除しています。
結論
Get-ChildItem cmdlet は PowerShell でファイルとディレクトリーを操作するための強力なツールです。基本的な使用法からやや高度なスケナリオまで、マスターした後、ファイルシステムをナビゲートし、操作することができます。
例えばのスクリプト:
# 現在のディレクトリー内の全てのファイルとディレクトリーを取得
$filesAndDirs = Get-ChildItem
# .txt 拡張子のファイルをフィルタリング
$txtFiles = $filesAndDirs | Where-Object {$_.Extension -eq ".txt"}
# C:\Folder1 ディレクトリー内の全ての .jpg ファイルを再帰的に検索
$jpgFiles = Get-ChildItem -Path C:\Folder1\ -Recurse | Where-Object {$_.Extension -eq ".jpg"}
# ファイル名を変更
Get-ChildItem -Path C:\Folder1\subfile.txt | Rename-Item -NewName newfile.txt
# ディレクトリーを削除
Remove-Item -Path C:\Folder2
このスクリプトでは、Get-ChildItem cmdlet を使用してファイルシステムをナビゲートし、操作する方法を示しています。
