2014-04-15 12:40:31 +0000 2014-04-15 12:40:31 +0000
57
57

Verwijder alle bestanden uit een map en de submappen

Ik wil alle bestanden uit een mapstructuur verwijderen, zodat ik een lege mapstructuur heb.

Kan dit in batch of VBScript scripting?

Ik heb een zeer eenvoudig batchcommando geprobeerd, maar dit vereiste dat de gebruiker het verwijderen van elk bestand toestond. Dit was geen geschikte oplossing omdat er vele honderden bestanden zijn en dit zal in de loop van de tijd enorm toenemen.

Wat kunt u voorstellen?

Antwoorden (13)

81
81
81
2014-04-15 13:18:38 +0000

Dit kan worden bereikt met behulp van PowerShell :

Get-ChildItem -Path C:\Temp -Include *.* -File -Recurse | foreach { $_.Delete()}

Dit commando krijgt elk kinderitem in $path, voert de verwijderingsmethode op elk item uit, en is vrij snel. De mapstructuur blijft intact.

Als u mogelijk bestanden zonder extensie hebt, gebruik dan

Get-ChildItem -Path C:\Temp -Include * -File -Recurse | foreach { $_.Delete()}

.

Het lijkt erop dat de parameter -File is toegevoegd na PowerShell v2. Als dat het geval is, dan moet

Get-ChildItem -Path C:\Temp -Include *.* -Recurse | foreach { $_.Delete()}

de truc uitvoeren voor bestanden die een extensie hebben.

Als het niet werkt, controleer of u een bijgewerkte versie van Powershell hebt

29
29
29
2017-11-02 17:21:27 +0000

Korte en suite PowerShell. Niet zeker wat de laagste versie van PS het zal werken met.

Remove-Item c:\Tmp\* -Recurse -Force
22
22
22
2014-04-15 12:44:30 +0000

U kunt dit doen met het del commando:

dir C:\folder
del /S *

De /S schakelaar is om alleen bestanden recursief te verwijderen.

4
4
4
2014-04-15 13:18:19 +0000

Als u tussen de regels van uw oorspronkelijke vraag leest, kan ik u een alternatieve BATCH-codelijn aanbieden die u kunt gebruiken. Wat dit zal doen wanneer deze wordt uitgevoerd is alleen bestanden verwijderen die meer dan 60 dagen oud zijn. Op deze manier kunt u dit in een geplande taak zetten en wanneer het wordt uitgevoerd verwijdert het de overtollige bestanden die u niet nodig hebt in plaats van de hele map weg te blazen. U kunt 60 tot 5 dagen of zelfs 1 dag wijzigen als u dat wilt. Dit verwijdert geen mappen.

forfiles -p "c:\path\to\files" -d -60 -c "cmd /c del /f /q @path"
4
4
4
2014-10-28 15:39:38 +0000

Met behulp van PowerShell:

Get-ChildItem -Path c:\temp -Include * | remove-Item -recurse
3
3
3
2018-05-10 07:13:40 +0000

Gebruik PowerShell om een enkel bestand of een enkele map te verwijderen. Voordat we het commando Verwijderen in powershell uitvoeren, moeten we ervoor zorgen dat u bent ingelogd op de server of PC met een account dat volledige toegang heeft tot de objecten die u wilt verwijderen. Met voorbeeld: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/

PowerShell commnads gebruiken om een bestand te verwijderen

Remove-Item -Path “C:\dotnet-helpers\DummyfiletoDelete. txt”

Het bovenstaande commando voert het bestand “DummyfiletoDelete.txt” uit en verwijdert het bestand dat zich in de locatie “C:\dotnet-helpers” bevindt.

PowerShell commnads gebruiken om alle bestanden

Remove-Item -Path “C:\dotnet-helpers” te verwijderen*. *

PowerShell commnads gebruiken om alle bestanden en mappen te verwijderen

Remove-Item -Path “C:\dotnet-helpers*.*” -recurse

-recurse boren naar beneden en vinden veel meer bestanden. De –recurse parameter staat PowerShell toe om alle kinderitems te verwijderen zonder te vragen om toestemming. Bovendien kan de parameter -force worden toegevoegd om verborgen of alleen-lezen bestanden te verwijderen.

Met behulp van -Force commando om bestanden krachtig te verwijderen

Met behulp van PowerShell commando om alle bestanden krachtig te verwijderen

Remove-Item -Path “C:\dotnet-helpers*.*” -Force

1
1
1
2014-11-20 21:28:24 +0000

Probeer dit met PowerShell. In dit voorbeeld wil ik alle .class bestanden verwijderen:

Get-ChildItem '.\FOLDERNAME' -include *.class -recurse | foreach ($_) {remove-item $_.FullName}
1
1
1
2015-05-18 11:30:46 +0000

Verwijder alle bestanden uit de huidige directory en subdirectories, maar laat de mappen structuur.

(/Q) schakelaar is voor het vragen aan de gebruiker of hij ok is om

te verwijderen Caution : probeer het zonder de /Q om er zeker van te zijn dat je niets kostbaars verwijdert.

del /S * /Q
1
1
1
2016-10-12 20:45:27 +0000

Dit is de eenvoudigste manier waarop IMO

Open PowerShell, navigeren naar de directory (cd), THEN

ls -Recurse * | rm

(Poof) alles is weg…

als je wilt verwijderen op basis van een specifieke extensie

ls -Recurse *.docx | rm

ls is de directory

-Recurse is een flag tellende powerhell om in elke subdirectory te gaan

* zegt alles

*.doc alles met . doc extensie

| voeden de uitvoer van links naar rechts

rm verwijderen

Alle andere antwoorden lijken dit meer verwarrend te maken dan nodig is.

1
1
1
2015-03-16 09:12:32 +0000
    1. Selecteer in Windows Verkenner de root dir die alle bestanden en mappen bevat. Zoek naar
    1. Sorteer op Type (Alle mappen staan bovenaan en alle bestanden die hieronder staan vermeld)
  1. Selecteer alle bestanden en druk op Delete.

Dit zal alle bestanden verwijderen en de mappenstructuur behouden.

0
0
0
2020-03-01 06:34:32 +0000

We kunnen alle bestanden in de mappen en de submap ervan verwijderen via het onderstaande commando.

Get-ChildItem -Recurse -Path 'D:\Powershell Practice' |Where-Object{$_.GetType() -eq [System.IO.FileInfo]} |Remove-Item
0
0
0
2020-02-04 17:43:55 +0000

Met Powershell 5.1:

  • *
$extensions_list = Get-ChildItem -Path 'C:\folder_path 
* * 

Het verwijdert alle itens die niet Directory zijn. 

$extension.FullName = Item Path 

$extension.Attributes = Item Type ( Directory of Archive ) -Recurse

foreach ( $extension in $extensions_list) {

    if ($extension.Attributes -notlike "Directory") {

        Remove-Item $extension.FullName  
    }
}
  • *

Het verwijdert alle itens die niet Directory zijn.

$extension.FullName = Item Path

$extension.Attributes = Item Type ( Directory of Archive )

-1
-1
-1
2018-10-14 14:59:48 +0000

Als aanvulling op de bovenstaande antwoorden is het eigenlijk niet nodig om de Get-Childitem te gebruiken en het resultaat door te geven aan de pijplijn in de bovenstaande antwoorden, omdat het -Include sleutelwoord is opgenomen in het Remove-Item commando

Men kan eenvoudigweg:

Remove-Item -Include “.” “C:\Temp” -Recurse