連載
» 2016年07月13日 05時00分 UPDATE

Windows PowerShell基本Tips(4):【 Remove-Item 】コマンドレット――ファイルやフォルダを削除する

本連載は、Windows PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「Remove-Item」コマンドレットです。

[国井傑(Microsoft MVP for Directory Services),株式会社ソフィアネットワーク]
「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルやフォルダなどのアイテムを削除する際に役立つ「Remove-Item」コマンドレットです。

Remove-Itemコマンドレットとは?

 「Remove-Item」は、特定の名前を含むファイルやフォルダなどのアイテムを削除するためのコマンドレットです。例えば、「temp」や「.exe」といった名前を含むファイルやフォルダを削除することができます。

 また、Remove-Itemコマンドレットは、コマンドプロンプトの「del」コマンドや、Linuxの「rm」コマンド、「rmdir」コマンドと同じ要領で使用できます。


Remove-Itemコマンドレットの書式

Remove-Item [パス] [オプション]

※[ ]は省略可能な引数を示しています



Remove-Itemコマンドレットの主なオプション

 Remove-Itemコマンドレットの主なオプションは次の通りです。

オプション 意味
-Path ファイルのパスを指定する。省略可能
-Exclude 指定したパターンに一致するファイルやフォルダを指定する
-Force 隠しファイルや読み取り専用ファイルなどを削除する
-Recurse 指定したフォルダとそのサブフォルダに含まれるファイル/フォルダを削除する


特定のファイルを削除する

 「Remove-Item ファイルパス」と実行すると、ファイルパスに該当するファイルが削除されます。ファイルパスの指定には、「ワイルドカード(*)」も使用できます。特定のフォルダ内の全てのファイルを削除する場合には、ファイルパスに「<フォルダパス>\*.*」と指定します。

 以下の実行例では、「C:\Work」フォルダ内の全てのファイルを削除しています(画面1)。

コマンドレット実行例

Remove-Item C:\Work\*.*


画面1 画面1 ファイルパスにワイルドカード(*)を指定して、「C:\Work」フォルダ内から全てのファイルを削除しているところ

 画面1では、Remove-Itemコマンドレットの実行前後で「Get-ChildItem」コマンドレットを実行しています。Remove-Item実行前には3つのファイル(a.txt、b.txt、c.txt)がありますが、Remove-Item実行後には全てのファイルが削除されていることを確認できます。

 また、ファイル/フォルダを問わずに、全てを削除する場合は「<フォルダパス>\*」と指定します。



サブフォルダを含む全てのアイテムを削除する

 Remove-Itemコマンドレットでは、パスで指定したフォルダ内にサブフォルダがあり、そのサブフォルダ内にもファイルがある場合は自動的には削除されず、削除を確認するメッセージが表示されます。

 確認メッセージを表示させずに、全てのファイルを削除するには「-Recurse」オプションを使用します。

 以下の実行例では、「C:\Work」フォルダ内からファイルとサブフォルダ、サブフォルダ内にあるファイルをまとめて削除しています(画面2)。

コマンドレット実行例

Remove-Item C:\Work\* -Recurse


画面2 画面2 「-Recurse」オプションを付けて、ファイルとサブフォルダ、サブフォルダ内にあるファイルをまとめて削除しているところ

 画面2でも、Remove-Itemコマンドレットの実行前後で「Get-ChildItem」コマンドレットを実行しています。Remove-Item実行前には「C:\Work」フォルダ内にファイル「a.txt」とサブフォルダ「abc」、そしてサブフォルダ「abc」内にファイル「b.txt」がありますが、Remove-Item実行後は全てのファイルとフォルダが削除されていることを確認できます。



レジストリを削除する

 Remove-Itemコマンドレットで削除できるのは、ファイルやフォルダだけではありません。Windows PowerShellからアクセス可能なレジストリ証明書環境変数なども削除することができます。例えば、レジストリの「HKEY_LOCAL_MACHINE」を削除する場合は、「HKLM:\」と指定します。

 以下の実行例では、レジストリの「HKEY_LOCAL_MACHINE」サブツリーから「System\CurrentControlSet\Services\abc」キーとその配下の値を削除しています(画面3)。

コマンドレット実行例

Remove-Item HKLM:\System\CurrentControlSet\Services\abc


画面3 画面3 Remove-Itemコマンドレットでは、レジストリや証明書、環境変数なども削除することができる

 なお、レジストリの削除には管理者権限が必要になるので、Windows PowerShellは「管理者として実行」で起動して操作してください。



筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年よりマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年よりMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。