PowerShell 削除フォルダー

Migel Hewage Nimesha 2023年1月30日
  1. PowerShell で Remove-item コマンドレットを使用してフォルダーを削除する
  2. PowerShell でコマンドプロンプトを使用してフォルダーを削除する
  3. PowerShell で FileSystem オブジェクトメソッドを使用してフォルダーを削除する
  4. PowerShell で.Net クラスを使用してフォルダーを削除する
PowerShell 削除フォルダー

PowerShell のフォルダー削除アクションは、ローカルパスか共有パスかに関係なく、特定の場所からフォルダーを削除します。

この記事では、PowerShell を使用してフォルダーを削除するさまざまな方法に焦点を当てています。

PowerShell で Remove-item コマンドレットを使用してフォルダーを削除する

Remove-Item コマンドレットを使用して、1つ以上のオブジェクトを削除できます。

削除には 2つの異なる構文を使用できます。ただし、これら 2つは別々に使用できますが、組み合わせて使用​​することはできないことに注意してください。

  • 構文 1
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]
  • 構文 2
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]

-Path-Literalpath の両方を同じ構文で使用することはできません。

Remove-item パラメータ

使用される最も一般的なパラメータの名前と説明を以下に示します。

名前 説明
-Path 削除するものの場所を指定します。ワイルドカード文字の使用に制限はありません。
-LiteralPath 1つ以上の場所に指定されたパス
-Confirm コマンドレットを実行する前に確認を求められます
-Exclude 操作中にコマンドレットが除外する項目
-Credential PowerShell がインストールされているプロバイダーは、このパラメーターをサポートしていません。このコマンドレットを使用する場合は、Invoke-Command を使用して、他のユーザーになりすますか、特権をエスカレーションします。
-Filter パスパラメータを検証するためのフィルタ
-Force プライベートまたは読み取り専用のファイル/エイリアスや変数など、他の方法では変更できないオブジェクトを強制的に削除します。
-Include コマンドレットが操作中に含めるアイテム
-Recurse このコマンドレットは、指定された場所のオブジェクトと、その場所のすべての子アイテムを破棄します。
-Stream Stream 引数は、FileSystem プロバイダーによって Remove-Item に追加される動的パラメーターです。この設定は、ファイルシステムを備えたドライブにのみ適用されます。
-WhatIf コマンドレットが実行された場合に何が起こるかを示します。

さまざまな構文の使用法とともにいくつかの例を見てみましょう。

例 1:

ここでは、以下のコマンドを使用して test1 フォルダーを削除します。最後に、フォルダーが削除されることがわかります。

Remove-Item 'D:\temp\Test1'

例 2:

test2 フォルダーを再帰的に削除します。PowerShell は、前の例でディレクトリが空かどうかを確認します。このシナリオでは、フォルダが削除されるだけです。

Remove-Item 'D:\temp\test2' -Recurse

例 3:-RemoveItem-LiteralPath を使用する

-LiteralPath は、-Force および -Recurse パラメーターとともに使用されます。そのため、確認プロンプトを表示せずに、指定されたパス内のフォルダーとともにアイテムを強制的に削除します。

Remove-Item -LiteralPath "foldertodelete" -Force -Recurse

例 4:パイプラインとしての Remove-item

最初に Get-ChildItem を使用してフォルダーとファイルを取得し、次に Remove-Item を使用して前のコマンドの結果をパイプライン処理します。

Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose

ここでの唯一の問題は、フォルダの内容のみが削除され、フォルダ自体は削除されないことです。したがって、フォルダを削除するには、他のコードスニペットを追加する必要があります。

PowerShell でコマンドプロンプトを使用してフォルダーを削除する

ほとんどのコマンドラインユーザーは、rmdir コマンドを使用してフォルダーを削除または削除します。構文は、以下に示すように、フォルダパスとともに rmdir です。

rmdir C:\Temp\TestFolder

PowerShell で FileSystem オブジェクトメソッドを使用してフォルダーを削除する

PowerShell では、フォルダーを削除するためのさまざまなオプションを利用できます。これらの 1つは、ファイルシステムオブジェクトメソッドです。この手順には 2つのフェーズがあります。最初のステップでは、ファイルシステムオブジェクトを作成します。次に、2 番目のステップで、DeleteFolder() 関数を使用して、関連付けられたオブジェクトのフォルダーを破棄します。

したがって、これを行うには、最初に test.ps1 ファイルを作成してから、以下に示す次のコマンドを追加します。

$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")

最後に、test.ps1 ファイルを実行すると、目的のフォルダーが削除されます。

PowerShell で.Net クラスを使用してフォルダーを削除する

PowerShell では、System.IO.Directory クラスと Delete() メソッドが.NETFramework によってフォルダーを削除するために使用されます。指定されたフォルダが空でない場合、この操作は例外をスローします。

&gt [System.IO.Directory]::Delete("C:\Temp\TestFolder")

この空でないフォルダを削除するには、Delete() 関数の $true オプションを使用します。

System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

関連記事 - PowerShell Directory