Remove-Item
指定した項目を削除します。
構文
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
説明
コマンドレットは Remove-Item
、1 つ以上の項目を削除します。 多くのプロバイダーでサポートされているため、ファイル、フォルダー、レジストリ キー、変数、エイリアス、関数など、さまざまな種類の項目を削除できます。
例
例 1: ファイル名拡張子を持つファイルを削除する
次の使用例は、フォルダーからドット (.
) を含む名前を持つすべてのファイルを C:\Test
削除します。 コマンドはドットを指定するため、ファイル名拡張子のないフォルダーまたはファイルは削除されません。
Remove-Item C:\Test\*.*
例 2: フォルダー内のドキュメント ファイルの一部を削除する
次の使用例は、ファイル名拡張子と名前が含*1*
まれていないすべてのファイルを.doc
現在のフォルダーから削除します。
Remove-Item * -Include *.doc -Exclude *1*
ワイルドカード文字 (*
) を使用して、現在のフォルダーの内容を指定します。 Include パラメーターと Exclude パラメーターを使用して、削除するファイルを指定します。
例 3: 非表示の読み取り専用ファイルを削除する
このコマンドは、 非表示 と 読み取り専用の両方のファイルを削除します。
Remove-Item -Path C:\Test\hidden-RO-file.txt -Force
Path パラメーターを使用してファイルを指定します。 Force パラメーターを使用して削除します。 Force がないと、読み取り専用または非表示のファイルを削除できません。
例 4: サブフォルダー内のファイルを再帰的に削除する
このコマンドは、現在のフォルダー内のすべての CSV ファイルとすべてのサブフォルダーを再帰的に削除します。
Recurse パラメーターには既知の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: 代替データ ストリームを削除する
この例では、コマンドレットの Stream 動的パラメーター Remove-Item
を使用して代替データ ストリームを削除する方法を示します。 ストリーム パラメーターは、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
は、ファイルのZone.Identifier
ストリームをCopy-Script.ps1
取得します。 Remove-Item
は Stream パラメーター を使用してファイルの Zone.Identifier
ストリームを削除します。 最後に、 Get-Item
ストリームが Zone.Identifier
削除されたことを示すコマンドレットです。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。 詳細については、次の記事を参照してください。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
注意
このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 別のユーザーを偽装したり、このコマンドレットを実行するときに資格情報を昇格させたりするには、 Invoke-Command を使用します。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Exclude
文字列配列として、このコマンドレットが操作で除外する項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターンを入力します (例: *.txt
. ワイルドカード文字を使用できます。 Exclude パラメーターは、コマンドに項目C:\Windows\*
の内容 (ワイルドカード文字がディレクトリの内容C:\Windows
を指定するなど) が含まれている場合にのみ有効です。
Exclude で Recurse を使用する場合は、現在のディレクトリの結果のみを除外します。 サブフォルダーに Exclude パターンと一致するファイルがある場合、それらのファイルは親ディレクトリと共に削除されます。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Path パラメーターを修飾するフィルターを指定します。 FileSystem プロバイダーは、フィルターの使用をサポートする唯一のインストール済み PowerShell プロバイダーです。 FileSystem フィルター言語の構文は、about_Wildcardsにあります。 フィルターは、取得後に PowerShell でオブジェクトをフィルター処理するのではなく、コマンドレットがオブジェクトを取得するときにフィルターを適用するため、他のパラメーターよりも効率的です。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
非表示のファイルや読み取り専用ファイル、読み取り専用のエイリアスや変数など、変更できない項目を削除するようにコマンドレットに強制します。 コマンドレットでは、定数のエイリアスまたは変数は削除できません。 実装はプロバイダーごとに異なります。 詳細については、「about_Providers」を参照してください。 Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
文字列配列として、このコマンドレットが操作に含める項目を指定します。 このパラメーターの値は、Path パラメーターを修飾します。 パス要素またはパターンを入力します (例: "*.txt"
. ワイルドカード文字を使用できます。 Include パラメーターは、コマンドに項目C:\Windows\*
の内容 (ワイルドカード文字がディレクトリの内容C:\Windows
を指定するなど) が含まれている場合にのみ有効です。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
1 つ以上の場所へのパスを指定します。 LiteralPath の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 パスにエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように PowerShell に指示します。
詳細については、「 about_Quoting_Rules」を参照してください。
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
削除する項目のパスを指定します。 ワイルドカード文字を使用できます。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Recurse
このコマンドレットは、指定した場所および場所のすべての子項目の項目を削除することを示します。
Recurse パラメーターでは、すべてのサブフォルダーまたはすべての子項目が削除されない場合があります。 これは既知の問題です。
注意
この動作は、Windows バージョン 1909 以降で修正されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Stream
注意
このパラメーターは、Windows でのみ使用できます。
Stream パラメーターは、FileSystem プロバイダーが追加するRemove-Item
動的パラメーターです。
このパラメーターはファイル システム ドライブでのみ機能します。
などのZone.Identifier
代替データ ストリームを削除するために使用Remove-Item
できます。
ただし、インターネットからダウンロードされるファイルをブロックするセキュリティ チェックをなくす方法としては推奨されません。 ダウンロードしたファイルが安全であることを確認する場合は、コマンドレットを使用します Unblock-File
。
このパラメーターは Windows PowerShell 3.0 で導入されました。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
このコマンドレットには、リテラル パスではなくパスを含む文字列をパイプ処理できます。
出力
None
このコマンドレットによる戻り値はありません。
メモ
この Remove-Item
コマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用できるプロバイダーを一覧表示するには、「.」と入力します Get-PsProvider
。 詳細については、「about_Providers」を参照してください。
Recurse パラメーターを使用せずにアイテムを含むフォルダーを削除しようとすると、コマンドレットによって確認が求められます。 使用 -Confirm:$false
しても、プロンプトは抑制されません。 これは仕様です。