Yanıtlar:
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
-ErrorAction Ignore
diğer hataları da gizleyecektir.
Remove-Item './folder/*'
. Gerçekten tüm klasörlerin dosyalarını temizlemek istiyorsanız, tüm yaprakları listeleyebilir ve Remove-Item cmdlet'ine Get-ChildItem -Recurse -File | Remove-Item
Gönderen PowerShell kaldır kuvvet cevap : Yardım Kaldır-Madde diyor ki:
Bu cmdlet'deki Recurse parametresi düzgün çalışmıyor
Geçici çözüm komutu
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Ve sonra klasörün kendisini silin
Remove-Item $Destination -Force
Remove-Item -Recurse -Force $dir
ve işe yarıyor.
Get-Help Remove-Item
sonra elde Windows 10 genişletilmiş belgeleri üzerinde olduğunu okuyun Update-Help
...
2018 Güncellemesi
PowerShell'in geçerli sürümünde (Windows 10 1809'da v5.1 ile test edilmiştir) rm -R .\DirName
, dizini .\DirName
içerebileceği tüm alt dizinler ve dosyalarla sessiz bir şekilde silmek için daha basit Unix sözdizimi kullanılabilir . Aslında birçok yaygın Unix komutu PowerShell'de bir Linux komut satırında olduğu gibi çalışır.
rm -R .\DirName\*
Klasörü, klasörü silmeden temizlemek için de kullanabilirsiniz
Klasörsüz içeriği silmek için aşağıdakileri kullanabilirsiniz:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force -Recurse -Confirm:$false $directory2Delete
PowerShell ISE'de çalışmadı , ancak normal PowerShell CLI aracılığıyla çalıştı.
Umarım bu yardımcı olur. Bana bannanı sürüyordu.
PowerShell CLI
değil , çağrılırken silinmiştir PowerShell ISE
.
Aşağıda Michael Freidgeim'in cevabının kopyalanabilir bir uygulaması yer almaktadır
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
}
}
Dizinin C: \ kullanıcıları olduğu için güç kabuğumu yönetici olarak çalıştırmak zorunda kaldım,
del ./[your Folder name] -Force -Recurse
bu komut benim için çalıştı.
del
için bir takma addır 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
}
Klasörünüzü nesne olarak varsa, bir sonraki komutu kullanarak aynı komut dosyasında oluşturduğunuzu varsayalım:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Sonra aynı komut dosyasında bu şekilde kaldırabilirsiniz
$folder.Delete($true)
$ true - özyinelemeli kaldırma durumları
$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
}