Folosind PowerShell, este posibil pentru a elimina un director care conține fișiere fără a solicita să confirmați acțiunea?
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
De PowerShell elimina forța de răspuns: ajuta la eliminarea-Articol spune:
Recurse parametru în acest cmdlet-ul nu funcționează în mod corespunzător
Comanda de soluție este de
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
Și apoi ștergeți folderul în sine
Remove-Item $Destination -Force
Aceasta a lucrat pentru mine:
Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue
Astfel, dosarul este eliminat cu toate fișierele într-acolo și nu este producătoare de eroare în cazul în care calea de dosar nu't există.
2018Update
În versiunea curentă de PowerShell (testat cu v5.1 pe Windows 10 1809) se poate folosi cel mai simplu Unix sintaxa rm -R .\DirName la tăcere a șterge directorul
.\DirName cu toate subdirectoarele și fișierele pot conține. În fapt, multe comune comenzi Unix lucrează în același mod în PowerShell ca în linia de comandă Linux.
Pentru a șterge conținutul fără un folder, puteți utiliza următoarele:
Remove-Item "foldertodelete\*" -Force -Recurse
rm -Force-Recurse -Confirma:$fals $directory2Delete
n't de lucru în PowerShell ISE, dar ea a lucrat prin periodice PowerShell CLI.
Sper că acest lucru ajută. Ea a fost de conducere mine bannanas.
Mai jos este un copy-pasteable implementarea Michael Freidgeim's raspunde
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
}
}
$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
}
$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
}
Dacă aveți folder ca un obiect, să's spun că tu ai creat-o în același script folosind următoarea comandă:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Apoi, puteți elimina doar așa, în același script
$folder.Delete($true)
$adevărat - membre pentru recursiv de îndepărtare