Come eliminare file / sottocartelle in una directory specifica al prompt dei comandi in Windows


5 Answers

rmdir è il mio comando preferito di tutti i tempi per il lavoro. Funziona per l'eliminazione di file e cartelle enormi con sottocartelle. Un backup non viene creato, quindi assicurati di aver copiato i tuoi file in modo sicuro prima di eseguire questo comando.

RMDIR "FOLDERNAME" /S /Q

Questo rimuove in silenzio la cartella e tutti i file e le sottocartelle.

Question

Supponiamo che esista una variabile chiamata %pathtofolder% , in quanto rende chiaro che si tratta di un percorso completo di una cartella.

Voglio eliminare ogni singolo file e sottocartella in questa directory, ma non nella directory stessa.

Ma potrebbe esserci un errore come 'questo file / cartella è già in uso' ... quando ciò accade, dovrebbe solo continuare e saltare quel file / cartella.

Qualcuno può darmi un comando per questo?




CD [Your_Folder]
RMDIR /S /Q .

Riceverai un messaggio di errore, ti informa che il comando RMDIR non può accedere alla cartella corrente, quindi non può cancellarlo.

Aggiornamento :

Da this utile commento (grazie a Moritz Both ), è possibile aggiungere && between, quindi RMDIR non verrà eseguito se il comando del CD non riesce (ad esempio, il nome della directory errata):

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

Dalla riga di comando di Windows :

/ S: elimina un albero di directory (la directory specificata e tutte le relative sottodirectory, inclusi tutti i file).

/ Q: specifica la modalità silenziosa. Non richiede conferma quando si elimina un albero di directory. (Nota che / q funziona solo se / s è specificato).




Io uso Powershell

Remove-Item c:\scripts\* -recurse

Rimuoverà il contenuto della cartella, non la cartella stessa.




Puoi farlo usando il seguente comando per cancellare tutti i contenuti e la cartella principale stessa:

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



Ciò rimuoverà le cartelle e i file e lascerà la cartella dietro.

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



@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





Related