刪除指定的項目。

語法

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

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

描述

Remove-Item Cmdlet 會刪除一個或多個項目。由於受到多種提供者支援,因此它可以刪除許多不同的項目類型,包括檔案、目錄、登錄機碼、變數、別名和函數。

參數

-Credential <PSCredential>

指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。

請輸入使用者名稱,例如 "User01" 或 "Domain01\User01",或是輸入 PSCredential 物件,例如由 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,則系統會提示您提供密碼。

所有隨 Windows PowerShell 安裝的提供者都不支援此參數。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Exclude <string[]>

忽略指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Filter <string>

指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

允許此 Cmdlet 移除無法以其他方式變更的項目,例如隱藏檔案或唯讀檔案,或是唯讀別名或變數。此 Cmdlet 無法移除常數別名或變數。實作因提供者而異。如需詳細資訊,請參閱 about_Providers。即便使用 Force 參數,此 Cmdlet 也無法覆寫安全性限制。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Include <string[]>

只刪除指定的項目。此參數的值用於限定 Path 參數。輸入路徑元素或模式,例如 "*.txt"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-LiteralPath <string[]>

指定要移除的項目所在路徑。LiteralPath 與 Path 不同,係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-Path <string[]>

指定要移除的項目所在路徑。允許使用萬用字元。參數名稱 ("-Path") 為選擇性。

必要?

true

位置?

1

預設值

接受管線輸入?

true (ByValue, ByPropertyName)

接受萬用字元?

false

-Recurse

刪除位於指定位置,以及位於這些位置的所有子項目中的項目。

在這個 cmdlet 中,Recurse 參數無法正常運作。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Confirm

在執行命令前先提示確認。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-WhatIf

說明執行命令時將會發生何種情況,但不會實際執行命令。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseTransaction

將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

System.String

您可經由管道將包含路徑 (但不是常值路徑) 的字串輸出至 Remove-Item。

輸出

None

這個 Cmdlet 不會傳回任何輸出。

附註

您也可以利用 Remove-Item 的內建別名 ("del"、"erase"、"rmdir"、"rd"、"ri" 或 "rm") 參照該命令。如需詳細資訊,請參閱 about_Aliases。

Remove-Item Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PsProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>remove-item C:\Test\*.*

描述
-----------
這個命令會刪除 C:\Test 目錄中所有檔名內包含點 (.) 的檔案。由於此命令指定了點,因此它不會刪除目錄或是未包含副檔名的檔案。






範例 2

C:\PS>remove-item * -include *.doc -exclude *1*

描述
-----------
這個命令會從目前目錄,刪除所有副檔名為 .doc 且檔名中不包含 "1" 的檔案。它使用萬用字元 (*) 指定目前目錄的內容。它使用 Include 和 Exclude 參數指定要刪除的檔案。






範例 3

C:\PS>remove-item -path C:\Test\hidden-RO-file.txt -force

描述
-----------
這個命令會刪除同時為隱藏和唯讀屬性的檔案。它使用 Path 參數指定檔案。它使用 Force 參數授與刪除檔案的權限。若未使用 Force,就無法刪除唯讀或是隱藏屬性的檔案。






範例 4

C:\PS>get-childitem * -include *.csv -recurse | remove-item

描述
-----------
這個命令會遞迴刪除位在目前目錄及其所有子目錄中的所有 CSV 檔案。

因為此 Cmdlet 中的 Recurse 參數可能有錯,所以這個命令會用 Get-Childitem Cmdlet 取得所需要的檔案,而由管線運算子將這些檔案傳遞到 Remove-Item Cmdlet。

此 Get-ChildItem 命令中的 Path 參數具有 * 值,代表目前目錄的內容。它使用 Include 參數指定 CSV 檔案類型,並使用 Recurse 參數進行遞迴擷取。

若是嘗試在路徑中指定檔案類型 (例如,"-path *.csv"),此 Cmdlet 會將搜尋主體解譯成沒有子項目的檔案,因此會造成 Recurse 失敗。






範例 5

C:\PS>remove-item hklm:\software\mycompany\OldApp -recurse

描述
-----------
這個命令會刪除 OldApp 登錄機碼及其所有的子機碼和值。它會使用 Remove-Item Cmdlet 移除機碼。路徑已指定,但是省略了選擇性參數名稱 (Path)。

Recurse 參數會遞迴刪除 OldApp 機碼中的所有內容。如果該機碼包含子機碼,且您省略 Recurse 參數,則會提示您確認是否要刪除機碼的內容。






請參閱




目錄