Cara diam-diam menghapus direktori dengan konten di PowerShell

Menggunakan PowerShell, adalah mungkin untuk menghapus beberapa direktori yang berisi file-file tanpa disuruh untuk mengkonfirmasi tindakan?

Mengomentari pertanyaan (1)
Larutan
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
Komentar (5)

Dari PowerShell menghapus kekuatan jawaban: membantu Menghapus Item mengatakan:

Recurse parameter dalam cmdlet ini tidak bekerja dengan benar

Perintah untuk solusi

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

Dan kemudian hapus folder itu sendiri

Remove-Item $Destination -Force 
Komentar (5)

Ini bekerja untuk saya:

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

Dengan demikian folder dihapus dengan semua file di sana dan itu tidak menghasilkan error jika path folder doesn't ada.

Komentar (0)

2018 Update

Dalam versi saat ini dari PowerShell (diuji dengan v5.1 pada Windows 10 1809) satu dapat menggunakan sederhana Unix sintaks rm -R .\DirName untuk diam-diam menghapus direktori .\DirName dengan semua subdirektori dan file-file ini dapat berisi. Pada kenyataannya banyak umum perintah Unix bekerja dengan cara yang sama di PowerShell seperti di Linux command line.

Komentar (1)

Untuk menghapus konten tanpa folder anda dapat menggunakan berikut:

Remove-Item "foldertodelete\*" -Force -Recurse
Komentar (0)

rm -Force -Recurse -Konfirmasi:$false $directory2Delete didn't bekerja di PowerShell ISE, tetapi bekerja melalui reguler PowerShell CLI.

Saya harap ini membantu. Itu membuatku bannanas.

Komentar (1)

Di bawah ini adalah salinan-pasteable pelaksanaan Michael Freidgeim's jawaban

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
    }
}
Komentar (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
}
Komentar (2)
$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
}
Komentar (1)

Sejak saya berada di direktori C:\users aku harus menjalankan powershell sebagai administrator,

del ./[your Folder name] -Force -Recurse

perintah ini bekerja untuk saya.

Komentar (1)

Jika anda memiliki folder anda sebagai objek, let's mengatakan bahwa anda diciptakan dalam script yang sama menggunakan perintah berikut:

$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"

Maka anda hanya dapat menghapus itu seperti ini dalam naskah yang sama

$folder.Delete($true)

$benar - negara untuk rekursif penghapusan

Komentar (0)