syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

PowerShellで特定の拡張子のファイルを再帰的に削除

(これは2011-02-12に書いた故OCNブログの記事を移植したものです)

特定の拡張子(例えば.dat)のファイルを、下位のフォルダ内のファイルを含めて再帰的に削除したいとき、コマンド プロンプトでは

del *.dat /s

とすればいいんですが、問答無用で即コマンドを実行してしまうのが怖い。

Windows PowerShellでは-WhatIfオプションが存在するので、実際にコマンドを実行しないで、仮想的な実行結果の確認ができるようになっています。
PowerShell再帰的削除の仮想結果を確認するには、

Get-ChildItem -Include *.dat -Recurse | del -WhatIf

とします。こうすれば、削除処理自体は行なわないで、

WhatIf: 対象 "~.dat" に対して操作 "ファイルの削除" を実行しています。

という確認メッセージが出力されるだけなので、安全性が増します。コマンドのテストをするのにも便利。

実際に削除処理を実行するには、-WhatIfを取り除けばいいだけです。