次の方法で共有


Remove-Item

指定した項目を削除します。

構文

Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-Stream <String[]>]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-Stream <String[]>]
      [<CommonParameters>]
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-DeleteKey] <CommonParameters>]
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [-DeleteKey]
      [<CommonParameters>]
Remove-Item
      [-Path] <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [<CommonParameters>]
Remove-Item
      -LiteralPath <string[]>
      [-Filter <string>]
      [-Include <string[]>]
      [-Exclude <string[]>]
      [-Recurse]
      [-Force]
      [-Credential <pscredential>]
      [-WhatIf]
      [-Confirm]
      [-UseTransaction]
      [<CommonParameters>]

説明

Remove-Item コマンドレットは、1 つ以上の項目を削除します。 多くのプロバイダーでサポートされているため、ファイル、フォルダー、レジストリ キー、変数、エイリアス、関数など、さまざまな種類の項目を削除できます。

例 1: ファイル拡張子があるファイルを削除する

次の使用例は、ドット (.) を含む名前を持つすべてのファイルを C:\Test フォルダーから削除します。 コマンドはドットを指定するため、ファイル拡張子のないフォルダーまたはファイルは削除されません。

Remove-Item C:\Test\*.*

例 2: フォルダー内のドキュメント ファイルを削除する

次の使用例は、現在のフォルダーから、 .doc ファイル拡張子と *1*を含まない名前を持つすべてのファイルを削除します。

Remove-Item * -Include *.doc -Exclude *1*

ワイルドカード文字 (*) を使用して、現在のフォルダーの内容を指定します。 Include および Exclude パラメーターを使用して、削除するファイルを指定します。

例 3: 非表示の読み取り専用ファイルを削除する

このコマンドは、 hiddenread-only の両方のファイルを削除します。

Remove-Item -Path C:\Test\hidden-RO-file.txt -Force

Path パラメーターを使用してファイルを指定します。 Force パラメーターを使用して削除します。 Force がないと、読み取り専用またはhidden ファイルを削除することはできません。

例 4: サブフォルダー内のファイルを再帰的に削除する

このコマンドは、現在のフォルダー内のすべての CSV ファイルとすべてのサブフォルダーを再帰的に削除します。

Remove-ItemRecurse パラメーターには既知の問題があるため、この例のコマンドではGet-ChildItemを使用して目的のファイルを取得し、パイプライン演算子を使用してそれらをRemove-Itemに渡します。

Get-ChildItem * -Include *.csv -Recurse | Remove-Item

Get-ChildItem コマンドでは、Path の値は (*)、現在のフォルダーの内容を表します。 Include を使用して CSV ファイルの種類を指定し、Recurse を使用して取得を再帰的にします。 -Path *.csvなど、パスにファイルの種類を指定しようとすると、コマンドレットは検索の件名を子項目のないファイルと解釈し、Recurseは失敗します。

Note

この動作は、Windows バージョン 1909 以降で修正されました。

例 5: サブキーを再帰的に削除する

このコマンドは、"OldApp" レジストリ キーとそのすべてのサブキーと値を削除します。 Remove-Itemを使用してキーを削除します。 パスは指定されていますが、省略可能なパラメーター名 (Path) は省略されます。

Recurse パラメーターは、"OldApp" キーのすべての内容を再帰的に削除します。 キーにサブキーが含まれており、 Recurse パラメーターを省略した場合は、キーの内容を削除するかどうかを確認するメッセージが表示されます。

Remove-Item HKLM:\Software\MyCompany\OldApp -Recurse

例 6: 特殊文字を含むファイルの削除

次の例は、角かっこやかっこなどの特殊文字を含むファイルを削除する方法を示しています。

Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*'

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:30 PM           1132 myFile[1].txt
-a---          6/1/2018  12:19 PM           1283 myFile[2].txt
-a---          6/1/2018  12:19 PM           1432 myFile[3].txt

Get-ChildItem | Where-Object Name -Like '*`[*' | ForEach-Object { Remove-Item -LiteralPath $_.Name }
Get-ChildItem

Directory: C:\temp\Downloads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a---          6/1/2018  12:19 PM           1362 myFile.txt

例 7: 代替データ ストリームを削除する

この例では、Remove-Item コマンドレットの Stream 動的パラメーターを使用して代替データ ストリームを削除する方法を示します。 ストリーム パラメーターは、Windows PowerShell 3.0 で導入されています。

Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

FileName: \\C:\Test\Copy-Script.ps1

Stream                   Length
------                   ------
Zone.Identifier              26

Remove-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier
Get-Item C:\Test\Copy-Script.ps1 -Stream Zone.Identifier

Get-Item : Could not open alternate data stream 'Zone.Identifier' of file 'C:\Test\Copy-Script.ps1'.
At line:1 char:1
+ Get-Item 'C:\Test\Copy-Script.ps1' -Stream Zone.Identifier
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundException
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Stream パラメーター Get-Itemは、Copy-Script.ps1 ファイルのZone.Identifier ストリームを取得します。 Remove-Item は、 Stream パラメーターを使用して、ファイルの Zone.Identifier ストリームを削除します。 最後に、 Get-Item コマンドレットは、 Zone.Identifier ストリームが削除されたことを示します。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。 詳細については、次の記事をご覧ください。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

Note

このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットの実行時に資格情報を昇格したりするには、 Invoke-Command を使用します。

型:PSCredential
配置:Named
規定値:Current user
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-DeleteKey

これは、 Certificate プロバイダーによって使用できる動的パラメーターです。 Certificate プロバイダーとこのパラメーターは、Windows プラットフォームでのみ使用できます。

このコマンドレットを指定すると、証明書が削除されたときに秘密キーが削除されます。

詳細については、「 about_Certificate_Provider」を参照してください。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Exclude

文字列配列として、このコマンドレットが操作で除外する項目を指定します。 このパラメーターの値は、 Path パラメーターを修飾します。 パス要素またはパターン ( *.txtなど) を入力します。 ワイルドカード文字を使用できます。 Exclude パラメーターは、コマンドに項目の内容 (ワイルドカード文字がC:\Windows ディレクトリの内容を指定するC:\Windows\*など) が含まれている場合にのみ有効です。

ExcludeRecurse を使用する場合、Excludeは現在のディレクトリの結果のみをフィルター処理します。 サブフォルダーに Exclude パターンに一致するファイルがある場合、それらのファイルは親ディレクトリと共に削除されます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Filter

Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は、about_Wildcardsにあります。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにプロバイダーによって適用されるため、他のパラメーターよりも効率的です。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-Force

非表示または読み取り専用のファイルや読み取り専用のエイリアスや変数など、変更できない項目をコマンドレットで強制的に削除します。 コマンドレットは、定数のエイリアスや変数を削除できません。 実装はプロバイダーごとに異なります。 詳細については、「 about_Providers」を参照してください。 Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Include

文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、 Path パラメーターを修飾します。 パス要素またはパターン ( "*.txt"など) を入力します。 ワイルドカード文字を使用できます。 Include パラメーターは、コマンドに項目の内容 (ワイルドカード文字がC:\Windows ディレクトリの内容を指定するC:\Windows\*など) が含まれている場合にのみ有効です。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-LiteralPath

1 つ以上の場所へのパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、エスケープ シーケンスとして文字を解釈しないように PowerShell に指示します。

詳細については、「 about_Quoting_Rules」を参照してください。

型:String[]
Aliases:PSPath
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Path

削除する項目のパスを指定します。 ワイルドカード文字を使用できます。

型:String[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Recurse

このコマンドレットは、指定した場所および場所のすべての子項目の項目を削除することを示します。

Recurse パラメーターでは、すべてのサブフォルダーまたはすべての子項目が削除されない場合があります。 これは既知の問題です。

Note

この動作は、Windows バージョン 1909 以降で修正されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Stream

これは、 FileSystem プロバイダーによって使用できる動的パラメーターです。 このパラメーターは Windows でのみ使用できます。 このパラメーターは、 Recurse パラメーターと組み合わせて使用することはできません。

Remove-Itemを使用して、Zone.Identifierなどの代替データ ストリームを削除できます。 ただし、インターネットからダウンロードされるファイルをブロックするセキュリティ チェックを排除する推奨される方法ではありません。 ダウンロードしたファイルが安全であることを確認する場合は、 Unblock-File コマンドレットを使用します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

詳細については、「 about_FileSystem_Provider」を参照してください。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-UseTransaction

アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、 about_Transactionsを参照してください。

型:SwitchParameter
Aliases:usetx
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

リテラル パスではなくパスを含む文字列をこのコマンドレットにパイプできます。

出力

None

このコマンドレットは、出力を返しません。

メモ

Windows PowerShell には、 Remove-Itemの次のエイリアスが含まれています。

  • del
  • erase
  • rd
  • ri
  • rm
  • rmdir

Remove-Item コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「 Get-PsProvider」と入力します。 詳細については、「 about_Providers」を参照してください。

Recurse パラメーターを使用せずにアイテムを含むフォルダーを削除しようとすると、コマンドレットによって確認が求められます。 -Confirm:$falseを使用しても、プロンプトは抑制されません。 これは仕様です。