Remove-Item コマンドレットの使用

ファイルまたはフォルダ (または他の種類のオブジェクト) の削除

Remove-Item コマンドレットは、名前のとおりの処理を実行します。アイテムを完全に削除することができます。ファイル C:\Scripts\Test.txt はもう使用しませんか。それでは削除しましょう。

Remove-Item c:\scripts\test.txt

ワイルドカード文字を使用して複数のアイテムを削除することもできます。たとえば、次のコマンドで C:\Scripts のすべてのファイルが削除されます。

Remove-Item c:\scripts\*

ただし、問題が 1 つあります。C:\Scripts にサブフォルダがあるとします。この場合、Scripts フォルダ内の全アイテムを本当に削除するかどうかを確認するプロンプトが表示されます。

確認
C:\scripts の項目には子があり、Recurse パラメータが指定されていませんでした。
続行した場合、項目と共にすべての子が削除されます。続行しますか?  
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): 

このプロンプトを省略する方法はあると思いますか。はい、あります。コマンドの末尾に -recurse パラメータを付加するだけです。

Remove-Item c:\scripts\* -recurse

次に、変更を加えたコマンドを示します。Scripts フォルダに多数のファイルがあり、すべてのファイルを削除するとします。いいえ、"すべて" ではなく .wav ファイルは残したいとします。問題ありません。-exclude パラメータを使用して、削除対象から除外するファイルの種類を指定するだけです。

Remove-Item c:\scripts\* -exclude *.wav

何ですって。今度は .wav ファイルと .mp3 ファイルのみを削除して、その他のファイルの種類はすべて残すのですか。その場合、次のように指定します (-include パラメータを使用します)。

Remove-Item c:\scripts\* -include .wav,.mp3

おそらくおわかりだと思いますが、-include パラメータを使用すると、パラメータの部分で指定したアイテムについてのみ、コマンドレットが動作します (当然ながら複数のアイテムを指定できます。コンマを使用してアイテムを区切るだけです)。反対に、-exclude パラメータを使用すると、指定したアイテムはコマンドレットの動作対象から除外されます。

また、本当に必要であれば、-include と -exclude の両方を同じコマンドに使用できます。次のコマンドを実行するとどうなると思いますか。

Remove-Item c:\scripts\* -include *.txt -exclude *test*

そのとおりです。C:\Scripts フォルダのすべての .txt ファイル (-include パラメータで指定) が削除されますが、ファイル名のどこかに「test」という文字列が含まれるファイルは除外されます (-exclude パラメータで指定)。いろいろな例を試してみると、よくわかります。

ちなみに、Remove-Item コマンドレットには -whatif パラメータがあります。このパラメータを指定すると、Remove-Item を呼び出した場合の結果がわかるだけで、実際は削除処理を実行しません。それでは意味がないと思いますか。それでは、次のコマンドを見てください。

Remove-Item c:\scripts\*.vbs -whatif

このコマンドを実行すると、フォルダ C:\Scripts の .vbs ファイルは削除されませんが、次のような情報が返されます。この結果から、-whatif パラメータなしで Remove-Item を呼び出した場合に削除されるファイルがわかります。

WhatIf: 対象 "C:\scripts\imapi.vbs" に対して操作 "ファイルの削除" を実行しています。
WhatIf: 対象 "C:\scripts\imapi2.vbs" に対して操作 "ファイルの削除" を実行しています。
WhatIf: 対象 "C:\scripts\methods.vbs" に対して操作 "ファイルの削除" を実行しています。
WhatIf: 対象 "C:\scripts\read-write.vbs" に対して操作 "ファイルの削除" を実行しています。
WhatIf: 対象 "C:\scripts\test.vbs" に対して操作 "ファイルの削除" を実行しています。
WhatIf: 対象 "C:\scripts\winsat.vbs" に対して操作 "ファイルの削除" を実行しています。

さらに、ファイルとフォルダ以外のアイテムも削除できます。たとえば、次のコマンドを使用すると show という名前のエイリアスが削除されます。

Remove-Item alias:\show

alias:\ という場所の指定方法に注意してください。これはすべての Windows PowerShell ドライブで標準的な表記方法です。ドライブ文字にコロンと \ を続けます。たとえば、環境変数の Windows PowerShell ドライブを切り替えるには、次のコマンドを使用します。

Set-Location env:\
Remove-Item のエイリアス
  • ri

  • rd

  • erase

  • rm

  • rmdir

  • del

関連リンク