Is het mogelijk om met PowerShell een map te verwijderen die bestanden bevat zonder te vragen om actie te bevestigen?
Antwoord 1, autoriteit 100%
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
Antwoord 2, autoriteit 17%
Van PowerShell verwijder geforceerd antwoord:
help Remove-Item zegt:
De parameter Recurse in deze cmdlet werkt niet goed
De opdracht om dit te omzeilen is
Get-ChildItem -Path $Destination -Recurse | Remove-Item -force -recurse
En verwijder dan de map zelf
Remove-Item $Destination -Force
Antwoord 3, autoriteit 13%
Dit werkte voor mij:
Remove-Item $folderPath -Force -Recurse -ErrorAction SilentlyContinue
Dus de map wordt verwijderd met alle bestanden erin en er wordt geen fout gegenereerd als het mappad niet bestaat.
Antwoord 4, autoriteit 5%
Update 2018
In de huidige versie van PowerShell (getest met v5.1 op Windows 10 1809) kan men de eenvoudigere Unix-syntaxis rm -R .\DirName
gebruiken om de directory .\DirName
met alle submappen en bestanden die het kan bevatten. In feite werken veel algemene Unix-opdrachten in PowerShell op dezelfde manier als in een Linux-opdrachtregel.
Antwoord 5, autoriteit 2%
Om inhoud zonder map te verwijderen, kunt u het volgende gebruiken:
Remove-Item "foldertodelete\*" -Force -Recurse
Antwoord 6, autoriteit 2%
rm -Force -Recurse -Confirm:$false $directory2Delete
werkte niet in de PowerShell ISE, maar het werkte via de reguliere PowerShell CLI.
Ik hoop dat dit helpt. Ik kreeg er bananen van.
Antwoord 7, autoriteit 2%
kortom, we kunnen rm -r -fo {folderName}
gebruiken om de map recursief te verwijderen (verwijder alle bestanden en mappen erin) en forceren
Antwoord 8
Hieronder staat een kopieer-plakbare implementatie van het antwoord van Michael Freidgeim
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
}
}
Antwoord 9
Dit werkte voor mij:
Remove-Item C:\folder_name -Force -Recurse
Antwoord 10
$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
}
Antwoord 11
Aangezien mijn directory in C:\users was, moest ik mijn powershell als administrator uitvoeren,
del ./[your Folder name] -Force -Recurse
dit commando werkte voor mij.
Antwoord 12
Als je je map als object hebt, laten we zeggen dat je deze in hetzelfde script hebt gemaakt met het volgende commando:
$folder = New-Item -ItemType Directory -Force -Path "c:\tmp" -Name "myFolder"
Dan kun je het gewoon zo in hetzelfde script verwijderen
$folder.Delete($true)
$true – statussen voor recursieve verwijdering
Antwoord 13
$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
}
Antwoord 14
Als u samenvoegingeen variabelemet een vast pad en een tekenreeksals dynamisch pad wilt samenvoegen tot een geheel padom de map verwijderen, hebt u mogelijk de volgende opdracht nodig:
$fixPath = "C:\Users\myUserName\Desktop"
Remove-Item ("$fixPath" + "\Folder\SubFolder") -Recurse
In de variabele $newPath
is het aaneengeschakelde pad nu: "C:\Users\myUserName\Desktop\Folder\SubFolder"
Je kunt dus verschillende mappen verwijderen vanaf het startpunt ("C:\Users\myUserName\Desktop"
), dat al is gedefinieerd en opgelost in de variabele $fixPath
.
$fixPath = "C:\Users\myUserName\Desktop"
Remote-Item ("$fixPath" + "\Folder\SubFolder") -Recurse
Remote-Item ("$fixPath" + "\Folder\SubFolder1") -Recurse
Remote-Item ("$fixPath" + "\Folder\SubFolder2") -Recurse
Antwoord 15
Powershell werkt met relatieve mappen. De Remove-Item
heeft een aantal handige aliassen die overeenkomen met unix. Enkele voorbeelden:
rm -R -Force ./directory
del -R -Force ./directory/*