PowerShell 刪除資料夾

Migel Hewage Nimesha 2023年1月30日 2022年5月16日
  1. 在 PowerShell 中使用 Remove-item Cmdlet 刪除資料夾
  2. 在 PowerShell 中使用命令提示符刪除資料夾
  3. 在 PowerShell 中使用 FileSystem 物件方法刪除資料夾
  4. 在 PowerShell 中使用 .Net 類刪除資料夾
PowerShell 刪除資料夾

PowerShell 中的資料夾刪除操作會從給定位置刪除資料夾,無論它是本地路徑還是共享路徑。

本文重點介紹使用 PowerShell 刪除資料夾的不同方法。

在 PowerShell 中使用 Remove-item Cmdlet 刪除資料夾

可以使用 Remove-Item cmdlet 刪除一個或多個物件。

我們可以使用兩種不同的語法進行刪除。但需要注意的是,這兩者可以單獨使用,但不能組合使用。

  • 語法 1
Remove-Item
      [-Path] <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]
  • 語法 2
Remove-Item
      -LiteralPath <String[]>
      [-Filter <String>]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-Recurse]
      [-Force]
      [-Credential <PSCredential>]
      [-WhatIf]
      [-Confirm]
      [-Stream <String[]>]
      [<CommonParameters>]

-Path-Literalpath 不能在相同的語法中使用。

Remove-item 引數

下面給出了最常用引數的名稱和描述。

名稱 說明
-Path 指定要移除的東西的位置。萬用字元的使用沒有限制。
-LiteralPath 指定到一個或多個位置的路徑
-Confirm 執行 cmdlet 前會提示確認
-Exclude cmdlet 在操作期間排除的專案
-Credential 任何 PowerShell 安裝的提供程式都不支援此引數。在使用此 cmdlet 時,使用 Invoke-Command 模擬其他使用者或提升你的許可權。
-Filter 過濾以驗證路徑引數
-Force 強制刪除無法以其他方式修改的物件,例如私有或只讀檔案/別名或變數。
-Include cmdlet 在操作期間包含的專案
-Recurse 此 cmdlet 丟棄給定位置中的物件以及所有位置的子項。
-Stream Stream 引數是由 FileSystem 提供程式新增到 Remove-Item 的動態引數。此設定僅適用於具有檔案系統的驅動器。
-WhatIf 顯示執行 cmdlet 時會發生什麼。

讓我們看一些示例以及不同的語法用法,

示例 1:

在這裡,我們將使用下面提到的命令刪除 test1 資料夾,最後,你可以看到該資料夾​​將被刪除。

Remove-Item 'D:\temp\Test1'

示例 2:

我們將遞迴刪除資料夾 test2。PowerShell 在前面的示例中檢查目錄是否為空。在這種情況下,它只會刪除該資料夾。

Remove-Item 'D:\temp\test2' -Recurse

示例 3:在 -RemoveItem 中使用 -LiteralPath

-LiteralPath-Force-Recurse 引數一起使用。因此,它會在沒有任何確認提示的情況下強制刪除專案以及給定路徑中的資料夾。

Remove-Item -LiteralPath "foldertodelete" -Force -Recurse

示例 4:Remove-item 作為管道

我們首先使用 Get-ChildItem 來檢索資料夾和檔案,然後我們使用 Remove-Item 來管道上一個命令的結果。

Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose

這裡唯一的問題是它只刪除資料夾的內容,而不是資料夾本身;因此,必須新增其他程式碼片段才能刪除該資料夾。

在 PowerShell 中使用命令提示符刪除資料夾

大多數命令列使用者將使用 rmdir 命令來刪除或刪除資料夾。語法是 rmdir 以及資料夾路徑,如下所示。

rmdir C:\Temp\TestFolder

在 PowerShell 中使用 FileSystem 物件方法刪除資料夾

PowerShell 中提供了用於刪除資料夾的不同選項。其中之一是檔案系統物件方法。此過程有兩個階段。第一步,我們將構造一個檔案系統物件;接下來,在第二步中,我們將使用 DeleteFolder() 函式來銷燬關聯物件的資料夾。

所以要做到這一點,首先建立一個 test.ps1 檔案,然後新增下面給出的以下命令。

$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")

最後,執行 test.ps1 檔案,它將刪除我們想要的資料夾。

在 PowerShell 中使用 .Net 類刪除資料夾

在 PowerShell 中,.NET 框架使用 System.IO.Directory 類和 Delete() 方法來刪​​除資料夾。如果提供的資料夾不為空,此操作將丟擲異常:

&gt [System.IO.Directory]::Delete("C:\Temp\TestFolder")

要刪除此非空資料夾,請使用 Delete() 函式中的 $true 選項:

System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

相關文章 - PowerShell Directory