2011-10-26 21 views
132

Sử dụng PowerShell, bạn có thể xóa một số thư mục chứa tệp mà không nhắc xác nhận hành động không?Cách lặng lẽ xóa thư mục có nội dung trong PowerShell

+0

có thể trùng lặp của [Làm thế nào để đệ quy xóa toàn bộ thư mục với PowerShell 2.0?] (Https: // stackoverflow.com/questions/1752677/how-to-recursively-delete-an-entire-directory-with-powershell-2-0) –

Trả lời

187
Remove-Item .\foldertodelete -Force -Recurse 
+0

@hsz Khi bạn nói lời nhắc, chính xác thì ý của bạn là gì? Bạn có nghĩa là bạn không muốn nhận được một dấu nhắc lệnh sau đó, hoặc bạn có nghĩa là bạn không muốn được nhắc xác nhận xóa? –

+0

Tôi đã làm hỏng điều gì đó. ;-) Giải pháp của bạn hoạt động tốt, cảm ơn! – hsz

+12

Tôi đã tìm thấy rằng tôi cần phải chạy hai lần này khi chạy trên một thư mục có chứa thư mục con. Lần đầu tiên, sẽ có rất nhiều lỗi "Thư mục không trống". Lần thứ hai, nó hoàn thành mà không có lỗi. –

43

Từ PowerShell remove force answer: giúp Remove-mục nói:

Tham số Đệ quy trong cmdlet này không hoạt động đúng

Lệnh để workaround là

Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse 

Và sau đó xóa thư mục

Remove-Item $Destination -Force 
+1

Nếu tôi chỉ muốn xóa nội dung của thư mục nhưng không xóa thư mục? – Kiquenet

+0

Lỗi này có được giải quyết không? – beppe9000

+1

@ beppe9000: Tôi tin là có. Trong các kịch bản gần đây tôi đang sử dụng 'Remove-Item -Recurse -Force $ dir' và nó hoạt động. –

9

Để xóa nội dung mà không có một thư mục mà bạn có thể sử dụng như sau:

Remove-Item "foldertodelete\*" -Force -Recurse 
3

rm -Force -Recurse -Confirm:$false $directory2Delete đã không làm việc trong PowerShell ISE, nhưng nó làm việc thông qua việc thường xuyên PowerShell CLI.

Tôi hy vọng điều này sẽ hữu ích. Nó đang lái xe cho tôi bannanas.

18

này đã làm việc cho tôi:

Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue 

Vì vậy, các thư mục được lấy ra với tất cả các file trong đó và nó không được sản xuất lỗi nếu đường dẫn thư mục không hiện hữu.

2

Dưới đây là một việc thực hiện sao chép pasteable của câu trả lời Michael Freidgeim của

function Delete-FolderAndContents { 
    # http://stackoverflow.com/a/9012108 

    param(
     [Parameter(Mandatory=$true, Position=1)] [string] $folder_path 
    ) 

    process { 
     $child_items = ([array] (Get-ChildItem -Path $folder_path -Recurse -Force)) 
     if ($child_items) { 
      $null = $child_items | Remove-Item -Force -Recurse 
     } 
     $null = Remove-Item $folder_path -Force 
    } 
} 
0
$LogPath = "E:\" # Your local of directories 
$Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "*temp*"} 
foreach ($Folder in $Folders) 
{ 
    $Item = $Folder.FullName 
    Write-Output $Item 
    Remove-Item $Item -Force -Recurse 
} 
+0

Trên tập lệnh ở trên tôi in tên đầy đủ của thư mục và xóa nó.\ o/ –

0

$LogPath = "E:\" # Your local of directories $Folders = Get-Childitem $LogPath -dir -r | Where-Object {$_.name -like "grav"} # Your keyword name directories

foreach ($Folder in $Folders) { $Item = $Folder.FullName Write-Output $Item Remove-Item $Item -Force -Recurse -ErrorAction SilentlyContinue }

+0

Trên tập lệnh ở trên, tôi in tên đầy đủ của thư mục và xóa nó. Một công việc tốt ... –

+0

Hi Anderson, bạn nên chỉnh sửa câu trả lời nếu bạn không định thêm 2 câu trả lời khác nhau, có thể bạn muốn xóa một trong số họ? – bummi

Các vấn đề liên quan