次の方法で共有


Remove-Item

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

構文

Path (Default) - FileSystem provider

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

LiteralPath - FileSystem provider

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

Path (Default) - Certificate provider

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

LiteralPath - Certificate provider

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

Path (Default) - All providers

Remove-Item
    [-Path] <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath - All providers

Remove-Item
    -LiteralPath <string[]>
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Recurse]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

説明

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

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

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

Remove-Item C:\Test\*.*

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

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

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

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

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

このコマンドは、 非表示読み取り専用の両方のファイルを削除します。

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

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

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

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

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

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

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

この動作は、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 動的パラメーターを使用して代替データ ストリームを削除する方法を示します。 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'.

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

パラメーター

-Confirm

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

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:cf

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Credential

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

パラメーターのプロパティ

型:PSCredential
規定値:Current user
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-DeleteKey

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

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

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

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Exclude

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

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:True
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Filter

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:True
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Force

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

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Include

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:True
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-LiteralPath

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

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:PSPath, LP

パラメーター セット

LiteralPath
配置:Named
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-Path

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:True
DontShow:False

パラメーター セット

Path
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-Recurse

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

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

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

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Stream

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

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

このパラメーターは、Windows PowerShell 3.0 で導入されました。 Windows PowerShell 7.2 の時点で、 Remove-Item はディレクトリやファイルから代替データ ストリームを削除できます。

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

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:True
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

パラメーターのプロパティ

型:SwitchParameter
規定値:False
ワイルドカードのサポート:False
DontShow:False
Aliases:ウィスコンシン

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

String

文字列に含まれるパスは、このコマンドレットにパイプできますが、リテラル パスはパイプできません。

出力

None

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

メモ

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

  • すべてのプラットフォーム:
    • del
    • erase
    • rd
    • ri
  • ウィンドウズ:
    • rm
    • rmdir

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

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