2011-10-26 45 views
132

使用PowerShell,是否可以在不提示確認操作的情況下刪除某些包含文件的目錄?如何在PowerShell中安靜地刪除包含內容的目錄

+0

的可能的複製[如何遞歸刪除使用PowerShell 2.0的整個目錄?(https://開頭stackoverflow.com/questions/1752677/how-to-recursively-delete-an-entire-directory-with-powershell-2-0) –

回答

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

@hsz當你說提示時,你到底是什麼意思?你的意思是你之後不想得到命令提示符,或者你的意思是說你不想被提示確認刪除? –

+0

我搞砸了。 ;-)你的解決方案運作良好,謝謝! – hsz

+12

我發現在包含子目錄的目錄上運行時需要運行兩次。第一次,會有很多「目錄不是空的」錯誤。第二次,它完成沒有錯誤。 –

43

PowerShell remove force answer: 有助於消除-項目說:

在此cmdlet的Recurse參數不能正常工作

要解決此命令是

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

然後刪除文件夾本身

Remove-Item $Destination -Force 
+1

如果我只想刪除文件夾的內容但不刪除文件夾? – Kiquenet

+0

這個錯誤是否解決? – beppe9000

+1

@ beppe9000:我相信,是的。在最近的腳本中,我使用了'Remove-Item -Recurse -Force $ dir',它可以工作。 –

9

要刪除內容,而你可以使用下面的一個文件夾:

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

rm -Force -Recurse -Confirm:$false $directory2Delete沒有在PowerShell ISE工作,但它通過定期的PowerShell命令行工作。

我希望這會有所幫助。這讓我感到害怕。

18

這爲我工作:

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

這樣的文件夾與在那裏的所有文件刪除,如果文件夾路徑不存在,它不產生誤差。

2

下面是邁克爾Freidgeim的答案的拷貝pasteable實施

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

上面的腳本我打印文件夾的全名並將其刪除。\ 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

在上面的腳本中,我打印文件夾的全名並將其刪除。一個好工作...... –

+0

嗨安德森,如果你不打算添加2個不同的答案,你應該編輯答案,也許你想刪除其中的一個? – bummi

相關問題