1. ホーム
  2. windows

[解決済み] PowerShell 2.0を使ってディレクトリ全体を再帰的に削除するには?

2022-03-14 03:13:04

質問

PowerShellでディレクトリとそのサブディレクトリをすべて強制的に削除する最も簡単な方法は何ですか?私はWindows 7でPowerShell V2を使用しています。

いくつかの情報源から、最もわかりやすいコマンドを知りました。 Remove-Item $targetDir -Recurse -Force は正しく動作しません。これには、PowerShell V2 のオンラインヘルプにある記述 ( Get-Help Remove-Item -Examples )には、次のような記述があります。

...このコマンドレットの Recurse パラメーターが不良であるため、コマンドは Get-Childitem コマンドレットを使用して目的のファイルを取得し、パイプライン演算子を使用して Remove-Item コマンドレットにそれらを渡します...。

を使用する例をいろいろと見てきました。 Get-ChildItem にパイプし、それを 項目を削除する しかし、この例では通常、ディレクトリ全体ではなく、フィルターに基づいていくつかのファイルのセットを削除します。

私は、最小限のコードを使用して、ユーザーの警告メッセージを生成することなく、ディレクトリ全体、ファイル、子ディレクトリを吹き飛ばす最もきれいな方法を探しています。理解しやすいなら、ワンライナーもいいでしょう。

解決方法は?

Remove-Item -Recurse -Force some_dir

は、確かにここで宣伝されているように動作します。

rm -r -fo some_dir

は省略形のエイリアスで、これも使えます。

私が理解した限りでは -Recurse パラメータは、フィルタリングされた一連のファイルを再帰的に削除しようとすると、正しく動作しません。単一のディレクトリとその下にあるすべてのファイルを削除する場合は、正常に動作するようです。