← Back to Home

使用 PowerShell の Cmdlet をファイルとディレクトリーに適用する

Views: 972

You can try the commands on our interactive shell.

使用 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 を使用してファイルシステムをナビゲートし、操作する方法を示しています。

text

Try it Now!