Een map met inhoud in PowerShell stilletjes verwijderen

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 .\DirNamegebruiken om de directory .\DirNamemet 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 $directory2Deletewerkte 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 $newPathis 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-Itemheeft een aantal handige aliassen die overeenkomen met unix. Enkele voorbeelden:

rm -R -Force ./directory
del -R -Force ./directory/*

Other episodes