Discussione: Craere file .bat
View Single Post
Old 22-01-2012, 18:52   #2
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
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).
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso