Uso uno script per svuotare quotidianamente una condivisione di scambio.
Questa condivisione ha diritti particolari che deve mantenere, quindi non posso eliminare la cartella e ricrearla.
Codice:
@ECHO OFF
set scambio="D:\temp"
dir /AD /B %scambio% >nul 2>nul && GOTO SCAMBIODIR
GOTO NOSCAMBIODIR
:SCAMBIODIR
for /F "delims=" %%i in ('dir /AA /B /S %scambio%') do del /Q /F /S "%%i"
for /F "delims=" %%i in ('dir /AH /B /S %scambio%') do del /Q /F /S /AH "%%i"
for /F "delims=" %%i in ('dir /AR /B /S %scambio%') do del /Q /F /S /AR "%%i"
for /F "delims=" %%i in ('dir /AD /B /S %scambio%') do rmdir /S /Q "%%i"
exit
:NOSCAMBIODIR
md %scambio%
Il primo
dir +
del cerca ricorsivamente ed elimina tutti i file normali.
Il secondo tutti quelli nascosti.
Il terzo tutti i read-only.
Il quarto fa fuori tutte le directory.
I diritti della condivisione impediscono il cambio di ownership e dei permessi ai gruppi che possono accedere, assicurando la certezza che la rimozione abbia il diritto di essere eseguita.
Il test di esistenza con creazione è presente per aver certezza che non capitino cose impreviste.
Ovviamente non sono certo che sia la strada più breve, ma non ho trovato alternative meno contorte (salvo forse collassare i rem dei file in solo ciclo, ma ho preferito lasciarli distinti).