Tìm kiếm trang web

Thư mục xóa PowerShell | Làm cách nào để xóa thư mục trong PowerShell?


Giới thiệu về Thư mục xóa PowerShell

Thao tác xóa thư mục PowerShell là xóa thư mục khỏi vị trí đã chỉ định, cho dù là đường dẫn cục bộ hay đường dẫn chung bằng cách sử dụng lệnh ghép ngắn Remove-Item hoặc cách tiếp cận .Net khác, thực hiện xóa các thư mục hoặc thư mục con và nội dung của chúng và sử dụng cụ thể chuyển sang xử lý các loại thuộc tính thư mục khác nhau như Chỉ đọc, ẩn, v.v. để xóa chúng.

Cú pháp PowerShell Xóa thư mục

PowerShell sử dụng nhiều phương pháp khác nhau để xóa các thư mục khỏi hệ điều hành Windows.

1. Phương pháp loại bỏ mục PowerShell

Cú pháp:

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>]

Từ các bộ trên, bạn chỉ có thể sử dụng kết hợp một bộ. Bạn không thể sử dụng cả -Path và -LiteralPath trong cùng một lệnh.

2. Dấu nhắc lệnh

  • Sử dụng lệnh rmdir
rmdir [<drive>:]<path> [/s [/q]]
  • Sử dụng del
del [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>
erase [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>

3. Phương thức đối tượng FileSystem

Sử dụng Phương pháp đối tượng FileSystem. Chúng ta có thể tạo một đối tượng hệ thống tập tin và sử dụng phương thức DeleteFolder.

object.DeleteFolder folderspec, [ force ]

4. Sử dụng phương pháp tiếp cận lớp .Net

[System.IO.Directory]::Delete(String)
[System.IO.Directory]::Delete(String,Boolean)

Làm cách nào để xóa thư mục trong PowerShell?

Như được hiển thị trong cú pháp, PowerShell sử dụng nhiều phương thức khác nhau như lệnh gốc Remove-Item, lệnh cmd rmdir và del, phương thức Đối tượng hệ thống tệp và phương pháp .Net để xóa các tệp khỏi thư mục.

Thư mục Hệ thống Cửa sổ có nhiều thuộc tính khác nhau được liên kết với nó như Chỉ đọc, Ẩn, Lưu trữ, v.v. và để xóa chúng, chúng ta có thể cần các tham số khác nhau để chuyển vào lệnh ghép ngắn.

Ví dụ để triển khai thư mục xóa PowerShell

Dưới đây chúng tôi thảo luận về các ví dụ về Thư mục xóa PowerShell:

Ví dụ số 1

Remove-Item để xóa thư mục có Subfolders và file

Giả sử chúng ta có một thư mục được lưu trữ tại vị trí C:\temp\Test\ và chúng ta cần xóa thư mục đó bằng lệnh Remove-Item. Thư mục chứa các mục dưới đây.

Lệnh:

Get-ChildItem C:\Temp\Test\

Đầu ra:

Để loại bỏ các mục,

Remove-Item C:\Temp\Test\ -Verbose

Khi bạn chạy lệnh này, nó sẽ yêu cầu xác nhận.

Bạn có thể nhấn 'Có' mỗi lần hoặc 'Có cho tất cả' để xác nhận tất cả các tệp và thư mục.

Lời nhắc này được tạo vì thư mục Kiểm tra chứa các thư mục con và tệp, sử dụng Tham số -Recurse để xóa tất cả các tệp và thư mục bên trong và tham số -Force để xóa chúng một cách mạnh mẽ.

Remove-Item C:\Temp\Test\ -Recurse -Force -Verbose

Đầu ra:

Ví dụ #2

Sử dụng tham số -WhatIF Với Remove-Item để tránh xóa nhầm thư mục. Chúng ta có thể sử dụng tham số -WhatIf để hiển thị những tệp và thư mục nào sẽ bị xóa để tránh việc xóa nhầm thư mục. Xem ví dụ dưới đây.

Remove-Item C:\Temp\Test\ -Recurse -Force -WhatIf -Verbose

Đầu ra:

Nếu bạn có quyền xóa thư mục từ xa thì bạn có thể cung cấp đường dẫn chung của thư mục đó. Ví dụ,

Remove-Item '\\Computer1\C$\Temp\Test\' -Recurse -Force -WhatIf -Verbose

Lệnh trên sẽ xóa thư mục C:\temp\Test trên máy tính từ xa Computer1.

Ví dụ #3

Sử dụng Remove-Item làm đường dẫn. Chúng ta có thể truy xuất nội dung tệp và thư mục bằng Get-ChildItem và Remove-Item để dẫn đầu ra của lệnh đầu tiên để xóa thư mục.

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

Vấn đề với cách tiếp cận này là nó xóa nội dung của thư mục chứ không xóa chính thư mục đó. Bạn cần thêm logic để xóa nhưng nếu bạn muốn xóa thư mục con cụ thể bên trong thư mục mẹ thì phương pháp này rất hữu ích mà chúng ta sẽ thấy trong ví dụ8.

Ví dụ #4

Sử dụng lệnh cmd để xóa thư mục.

  • Sử dụng del

Khi chúng ta sử dụng lệnh Del, nó chỉ xóa các tập tin và thư mục bên trong mà để trống thư mục gốc.

del c:\Temp\Test\

Khi bạn chạy lệnh này để xóa nội dung thư mục kiểm tra, nó sẽ nhắc xóa.

Để xóa các thư mục con, các tệp bao gồm cả tệp chỉ đọc, hãy sử dụng mạnh mẽ lệnh bên dưới.

c:\>del c:\Temp\Test /s /q /f

Đầu ra:

  • Sử dụng rmdir để xóa thư mục thay vì del
rmdir C:\Temp\Test

Khi chạy lệnh trên, bạn sẽ nhận được thông báo như bên dưới vì thư mục chứa các thư mục con và tệp.

Sử dụng lệnh bên dưới để xóa thư mục, thư mục con và tệp được chỉ định ở chế độ im lặng.

c:\>rmdir C:\Temp\Test /s /q

Ví dụ #5

Sử dụng phương pháp đối tượng hệ thống tệp. Chúng ta cũng có thể xóa thư mục bằng ComObject FileSystemObject như hiển thị bên dưới.

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

Ví dụ #6

Sử dụng phương pháp .Net Class. Chúng ta có thể sử dụng lớp .Net System.IO.Directory với phương thức Delete() để xóa thư mục.

Ví dụ:

PS C:\> [System.IO.Directory]::Delete("C:\Temp\Test")

Khi bạn chạy lệnh trên, nó sẽ đưa ra một ngoại lệ rằng thư mục không trống vì lệnh trên nhằm xóa thư mục trống.

Vì vậy, để xóa thư mục, hãy thêm tham số thứ hai $true để xóa thư mục không trống.

[System.IO.Directory]::Delete("C:\Temp\Test", $true)

Ví dụ #7

Sử dụng PowerShell DSC để xóa thư mục. Sử dụng phương thức khai báo DSC để xóa thư mục.

Configuration FolderDelete{
Node Localhost{
File TestFolderDelete{
DestinationPath = 'C:\Temp\Test'
Type = 'Directory'
Ensure = 'Absent'
Force = $true
}
}
}
FolderDelete -OutputPath C:\Temp\FolderDelete\ -Verbose
Start-DscConfiguration -Path C:\Temp\FolderDelete -Wait -Force -Verbose

Đầu ra:

Lệnh trên sẽ lưu trữ cấu hình trong C:\temp\FolderDelete và đảm bảo rằng đường dẫn tồn tại trước khi bạn chạy tập lệnh và nó sẽ tạo tệp MOF.

Bạn cũng có thể cung cấp các nút từ xa trong phần Nút như

Node @("Computer1","Computer2")

Ví dụ #8

Xóa các thư mục ẩn bằng PowerShell. Để loại bỏ các thư mục ẩn trước tiên chúng ta cần lấy lại thư mục ẩn bằng Get-ChildItem.

Get-ChildItem C:\Temp\Test\ -Hidden

Đầu ra:

Chúng tôi sẽ thêm Remove-Item dưới dạng Đường ống để xóa thư mục ẩn đó.

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

Đầu ra:

Phần kết luận

Windows File Explorer được sử dụng để tương tác với các tệp và thư mục hệ thống tệp nhưng vì nhiều lý do khác nhau, chúng tôi cần xóa thư mục khi viết tập lệnh hoặc để bảo trì hệ thống thường xuyên, chúng tôi cần xóa các thư mục để giải phóng thêm dung lượng , chúng ta có thể sử dụng các phương pháp được mô tả trong bài viết này.

Bài viết liên quan