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
を使用しても、プロンプトは抑制されません。 これは仕様です。