共用方式為


Remove-Item

刪除指定的專案。

語法

Path (預設值)

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

LiteralPath

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

Description

Remove-Item cmdlet 會刪除一或多個項目。 因為許多提供者都支援它,所以它可以刪除許多不同類型的專案,包括檔案、資料夾、登錄機碼、變數、別名和函式。

範例

範例 1:刪除擴展名為任何檔案的檔案

此命令會從 「C:\Test」 資料夾中移除名稱包含點 ('.'') 的所有檔案。 因為命令會指定一個點,因此命令不會刪除沒有擴展名的資料夾或檔案。

Remove-Item C:\Test\*.*

範例 2:刪除資料夾中的一些檔案

此命令會從目前資料夾刪除所有擴展名為 「.doc」 的檔案,以及不包含 1 的名稱。 它會使用通配符 ('*') 來指定目前資料夾的內容。 它會使用 IncludeExclude 參數來指定要刪除的檔案。

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

範例 3:刪除隱藏的唯讀檔案

此命令會刪除 隱藏只讀的檔案。 它會使用 Path 參數來指定檔案。 它會使用 Force 參數來刪除它。 如果沒有 Force,您就無法刪除 唯讀隱藏 檔案。

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

範例 4:以遞歸方式刪除子資料夾中的檔案

此命令會以遞歸方式刪除目前資料夾和所有子資料夾中的所有 CSV 檔案。

由於 中的 Remove-Item 參數有已知問題,因此此範例中的命令會使用 Get-ChildItem 取得所需的檔案,然後使用管線運算符將它們傳遞至 Remove-Item

Get-ChildItem 命令中,Path 的值為 『*』,代表目前資料夾的內容。 它會使用 Include 來指定 CSV 檔案類型,並使用 Recurse 來使擷取遞歸。

如果您嘗試指定路徑的檔類型,例如 -Path *.csv,Cmdlet 會將搜尋的主旨解譯為沒有子專案的檔案,Recurse 失敗。

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

範例 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 Cmdlet 的 Stream 動態參數來刪除替代數據流。 數據流參數是在 Windows PowerShell 3.0 中引進的。

第一個命令會使用 Cmdlet 的 Get-Item 動態參數,來取得 “Copy-Script.ps1” 檔案的 Zone.Identifier 數據流。

第二個命令會使用 Cmdlet 的 Remove-Item 動態參數來移除檔案的 Zone.Identifier 數據流。

第三個命令會使用 Cmdlet Stream 動態參數,確認已刪除 Zone.Identifier 數據流。

沒有 Get-Item 參數的第四個命令 Cmdlet,以確認檔案未刪除。

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
+ [!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()][!INCLUDE[]()]~~
    + CategoryInfo          : ObjectNotFound: (C:\Test\Copy-Script.ps1:String) [Get-Item], FileNotFoundE
   xception
    + FullyQualifiedErrorId : AlternateDataStreamNotFound,Microsoft.PowerShell.Commands.GetItemCommand

Get-Item C:\Test\Copy-Script.ps1
    Directory: C:\Test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          8/4/2011  11:15 AM       9436 Copy-Script.ps1

參數

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:cf

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Credential

備註

任何與 PowerShell 一起安裝的提供者都不支援此參數。 若要模擬其他使用者,或在執行此 Cmdlet 時提升您的認證,請使用 Invoke-Command

參數屬性

類型:PSCredential
預設值:Current user
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Exclude

指定這個 Cmdlet 會省略的項目。 此參數的值對 路徑 參數進行限定。 輸入路徑項目或模式,例如 *.txt。 允許使用通配符字元。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Filter

以提供者的格式或語言指定篩選。 此參數的值對 路徑 參數進行限定。

篩選的語法,包括使用通配符,取決於提供者。 篩選比其他參數更有效率,因為提供者會在 Cmdlet 取得物件時套用它們,而不是在擷取對象之後讓 PowerShell 篩選物件。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Force

強制 Cmdlet 移除無法變更的專案,例如隱藏或唯讀檔案或只讀別名或變數。 Cmdlet 無法移除常數別名或變數。 實作會因提供者而異。 如需詳細資訊,請參閱 about_Providers。 即使使用 Force 參數,Cmdlet 也無法覆寫安全性限制。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Include

指定要刪除的專案。 此參數的值對 路徑 參數進行限定。 輸入路徑專案或模式,例如 「*.txt」。。 允許使用通配符字元。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-LiteralPath

指定要移除之項目的路徑。 不同於 Path 參數,LiteralPath 的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False
別名:PSPath

參數集

LiteralPath
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Path

指定要移除之項目的路徑。 允許使用通配符字元。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:True
不要顯示:False

參數集

Path
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Recurse

表示此 Cmdlet 會刪除指定位置中的項目及所有子項目。

當它與 Include 參數搭配使用時,Recurse 參數可能不會刪除所有子資料夾或所有子專案。 這是已知問題。 因應措施是,請嘗試 命令的管線結果來 ,如本主題的<範例 4>中所述。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Stream

Stream 參數是 FileSystem 提供者新增至 Remove-Item的動態參數。 此參數僅適用於檔案系統磁碟驅動器。

您可以使用 Remove-Item 來刪除替代資料流。 不過,不建議排除封鎖從因特網下載之檔案的安全性檢查。 如果您確認下載的檔案是安全的,請使用 Unblock-File Cmdlet。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UseTransaction

在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:usetx

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:無線

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

String

您可以使用管道將包含路徑但不是常值路徑的字串傳送至此 cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

Remove-Item Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PsProvider。 如需詳細資訊,請參閱 about_Providers