Hoe bestanden/submappen in een specifieke map te verwijderen bij de opdrachtprompt in Windows

Stel, er is een variabele genaamd %pathtofolder%, omdat het duidelijk maakt dat het een volledig pad van een map is.

Ik wil elk afzonderlijk bestand en elke submap in deze map verwijderen, maar niet de map zelf.

Maar er kan een fout zijn zoals ‘dit bestand/de map is al in gebruik’… als dat gebeurt, moet het gewoon doorgaan en dat bestand/de map overslaan.

Is hier een commando voor?


Antwoord 1, autoriteit 100%

U kunt dit shellscript gebruiken om de map en bestanden op te schonen in C:\Tempsource:

del /q "C:\Temp\*"
FOR /D %%p IN ("C:\Temp\*.*") DO rmdir "%%p" /s /q

Maak een batchbestand (bijvoorbeeld delete.bat) met het bovenstaande commando. Ga naar de locatie waar het delete.bat-bestand zich bevindt en voer het commando uit: delete.bat


Antwoord 2, autoriteit 98%

RMDIRis mijn all time favoriete commando voor de baan. Het werkt voor het verwijderen van grote bestanden en mappen met submappen. Er wordt geen back-up gemaakt, dus zorg ervoor dat u uw bestanden veilig hebt gekopieerd voordat u deze opdracht uitvoert.

RMDIR "FOLDERNAME" /S /Q

Hiermee worden de map en alle bestanden en submappen stil verwijderd.


Antwoord 3, autoriteit 31%

De eenvoudigste oplossing die ik kan bedenken is het verwijderen van de hele map met

RD /S /Q folderPath

Maak deze map vervolgens opnieuw aan:

MD folderPath

Antwoord 4, autoriteit 19%

Hiermee worden de mappen en bestanden verwijderd en blijft de map achter.

pushd "%pathtofolder%" && (rd /s /q "%pathtofolder%" 2>nul & popd)

Antwoord 5, autoriteit 14%

@ECHO OFF
SET THEDIR=path-to-folder
Echo Deleting all files from %THEDIR%
DEL "%THEDIR%\*" /F /Q /A
Echo Deleting all folders from %THEDIR%
FOR /F "eol=| delims=" %%I in ('dir "%THEDIR%\*" /AD /B 2^>nul') do rd /Q /S "%THEDIR%\%%I"
@ECHO Folder deleted.
EXIT

…verwijdert alle bestanden en mappen onder de gegeven map, maar niet de map zelf.


Antwoord 6, autoriteit 11%

CD [Your_Folder]
RMDIR /S /Q .

Je krijgt een foutmelding, waarin staat dat het RMDIR-commando geen toegang heeft tot de huidige map, en dus niet kan worden verwijderd.

Bijwerken:

Van dezenuttige opmerking (dankzij Moritz Both), je mag &&tussen, zodat RMDIRniet wordt uitgevoerd als de opdracht CDmislukt (bijv. verkeerd getypte mapnaam):

CD [Your_Folder] && RMDIR /S /Q .

Van Windows-opdrachtregelreferentie:

/S:Verwijdert een directorystructuur (de opgegeven directory en al zijn
submappen, inclusief alle bestanden).

/Q:Specificeert de stille modus. Vraagt niet om bevestiging wanneer:
het verwijderen van een mappenboom. (Merk op dat /q alleen werkt als /s is
gespecificeerd.)


Antwoord 7, autoriteit 4%

RD staat voor REMOVE Directory.

/S : Alle bestanden en submappen verwijderen
In aanvulling op de map zelf.
Gebruik dit om een ​​volledige mapboom te verwijderen.

/ Q: Rustig – Geef geen bevestiging van YN

Voorbeeld:

RD /S /Q C:/folder_path/here

8, Autoriteit 4%

Ik gebruik PowerShell

Remove-Item c:\scripts\* -recurse

Het verwijdert de inhoud van de map, niet de map zelf.


9, Autoriteit 3%

Gebruik notepad om een ​​tekstdocument te maken en dit te kopiëren / plakken:

rmdir /s/q "%temp%"
mkdir "%temp%"

Selecteer Opslaan als en bestandsnaam:

delete_temp.bat

Opslaan als Type: Alle bestanden en klik op de knop opslaan .

Het werkt op elke account (beheerder of een standaardgebruiker). Voer het gewoon uit!

Ik gebruik een tijdelijke variabele in dit voorbeeld, maar u kunt een andere gebruiken! PS: alleen voor Windows OS!


10

Bestand verwijderen:

del PATH_TO_FILE

Om map te verwijderen met alle bestanden erin:

rmdir /s /q PATH_TO_FOLDER

Om alle bestanden uit de specifieke map te verwijderen (geen map zelf verwijderen) is een beetje gecompliceerd. del /s *.*Kan mappen niet verwijderen, maar verwijdert bestanden uit alle submap. Dus twee commando's zijn nodig:

del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"

11

U kunt het doen met behulp van de volgende opdracht om alle inhoud en de bovenliggende map zelf te verwijderen:

RMDIR [/S] [/Q] [drive:]path            

12

@ECHO OFF
rem next line removes all files in temp folder
DEL /A /F /Q /S "%temp%\*.*"
rem next line cleans up the folder's content
FOR /D %%p IN ("%temp%\*.*") DO RD "%%p" /S /Q

13

Ik heb verschillende van deze benaderingen geprobeerd, maar niemand werkte goed.

Ik vond deze tweestapsbenadering op de site Windows-opdrachtregel :

forfiles /P %pathtofolder% /M * /C "cmd /c if @isdir==FALSE del @file"
forfiles /P %pathtofolder%  /M * /C "cmd /c if @isdir==TRUE rmdir /S /Q @file"

Het werkte precies zoals ik nodig had en zoals gespecificeerd door de OP.


14

Gebruik:

del %pathtofolder%\*.*   /s /f  /q

Hierdoor wordt alle bestanden en submappen in %pathtofolder%, inclusief alleen-lezen bestanden, wist en vraagt ​​niet om bevestiging.

Other episodes