PDA

View Full Version : [script] cancellazione sottocartelle e files da una directory principale


Almor81
04-07-2011, 17:03
Buonasera, volevo creare uno script molto semplice per cancellare sottocartelle e files di una cartella condivisa su un server.
Ho fatto la seguente operazione:

DEL /F /Q C:\test\*.*
FOR /D %%F IN (C:\test\*.) DO RD "%%F" /Q /S

Il bat in questo modo funziona bene; se invece cambio il percorso, aggiungendo un'altra cartella con un nome che contiene uno spazio nel percorso, non va. Vi mostro il secondo esempio:

DEL /F /Q C:\users folders\test\*.*
FOR /D %%F IN (C:\users folders\test\*.) DO RD "%%F" /Q /S

Essendo alle prime armi, sapete darmi una mano?
Grazie

!fazz
04-07-2011, 17:10
linguaggio?, sistema operativo?

se sei su linux es puoi usare rm -rf percorso cartella
mentre su windows come penso ti interessi
usa rd /S /Q path per eliminare in un colpo solo la cartella puntata, tutti i file e tutte le sottocartelle

misterx
04-07-2011, 17:18
se non erro esiste il comando DELTREE /Y che fa quanto chiedi: in windows

!fazz
04-07-2011, 17:20
se non erro esiste il comando DELTREE /Y che fa quanto chiedi: in windows

mi pare che dia deprecato in windows

misterx
04-07-2011, 17:23
mi pare che dia deprecato in windows

in effetti lo hanno mantenuto sino a windows 98: come vola il tempo

Però qui: http://www.raymond.cc/blog/archives/2007/09/24/deltree-command-replacement-in-windows-2000-or-windows-xp/

WarDuck
04-07-2011, 20:22
Se il tuo interesse è rimuovere un'intera cartella (comprese sotto-directory) allora rd fa al caso tuo, con il flag /s.


C:\Users\Giulio\Prova>rd /?
Removes (deletes) a directory.

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

/S Removes all directories and files in the specified directory
in addition to the directory itself. Used to remove a directory
tree.

/Q Quiet mode, do not ask if ok to remove a directory tree with /S

Edit: ho visto adesso che !fazz ti aveva già risposto :D.

Almor81
05-07-2011, 08:16
ciao ragazzi, prma di tutto grazie per le vostre risposte, poi ho visto che funziona il bat semplicemente mettendo le apicette sulla cartella con lo spazio.
vi mostro l'esempio che sicuramente si capisce di più;

DEL /F /Q C:\"users profiles"\test\*.*
FOR /D %%F IN (C:\"users profiles"\test\*.) DO RD "%%F" /Q /S

Così, il funziona tutto bene. Grazie cmq alle persone che mi hanno risposto. Ciao :)