Jawaban:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
, meskipun itu juga akan menyembunyikan kesalahan lainnya.
Remove-Item './folder/*'
. Jika Anda benar-benar ingin menghapus hanya file dari semua folder, Anda dapat mendaftar semua daun dan pipa ke cmdlet Hapus-ItemGet-ChildItem -Recurse -File | Remove-Item
Dari PowerShell remove force answer : help Remove-Item mengatakan:
Parameter Perulangan dalam cmdlet ini tidak berfungsi dengan baik
Perintah untuk menyelesaikannya adalah
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Dan kemudian hapus folder itu sendiri
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
dan berfungsi.
Get-Help Remove-Item
dokumentasi diperpanjang yang diperoleh setelah Update-Help
dijalankan ...
Pembaruan 2018
Dalam versi PowerShell saat ini (diuji dengan v5.1 pada Windows 10 1809) orang dapat menggunakan sintaks Unix yang lebih sederhana rm -R .\DirName
untuk secara diam-diam menghapus direktori .\DirName
dengan semua subdirektori dan file yang mungkin dikandungnya. Sebenarnya banyak perintah Unix yang umum bekerja dengan cara yang sama di PowerShell seperti pada baris perintah Linux.
rm -R .\DirName\*
untuk membersihkan folder tanpa menghapus folder itu sendiri
Untuk menghapus konten tanpa folder Anda dapat menggunakan yang berikut:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
tidak bekerja di ISE PowerShell , tetapi bekerja melalui PowerShell CLI biasa.
Saya harap ini membantu. Itu membuatku bannanas.
PowerShell CLI
dan tidak saat berkembang di PowerShell ISE
.
Di bawah ini adalah implementasi dari jawaban Michael Freidgeim yang dapat di-copy-paste
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
}
}
Karena direktori saya berada di C: \ pengguna saya harus menjalankan PowerShell saya sebagai administrator,
del ./[your Folder name] -Force -Recurse
perintah ini bekerja untuk saya.
del
adalah alias untuk Remove-Item
.
$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
}
Jika Anda memiliki folder sebagai objek, katakanlah Anda membuatnya dalam skrip yang sama menggunakan perintah berikutnya:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Maka Anda bisa menghapusnya seperti ini di skrip yang sama
$folder.Delete($true)
$ true - menyatakan untuk penghapusan rekursif
$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
}