PDA

View Full Version : Aiuto...Utilizzo del dos nei file.bat o .cmd


DavideBB
19-06-2007, 12:29
Ciao ragazzi,
ho un problema, voglio creare un semplice file .bat
che mi cancella i dati all'interno di una cartella che si trova in
C:\Documents and Settings\All Users\Prova

Il comando che ho inserito nel file .bat è
del C:\Documents and Settings\All Users\Prova\* /q

Il problema è che non viene eseguito, se la cartella Prova si trovasse in C va tutto bene, allora ho pensato che il problema sia nel nome delle cartelle, quindi dagli spazi eccetera, che il dos non riconosce.
Mi potreste dire come posso risolvere il problema?
Grazie!

andbin
19-06-2007, 12:36
Il comando che ho inserito nel file .bat è
del C:\Documents and Settings\All Users\Prova\* /q

Il problema è che non viene eseguito, se la cartella Prova si trovasse in C va tutto bene, allora ho pensato che il problema sia nel nome delle cartelle, quindi dagli spazi eccetera, che il dos non riconosce.Metti l'intero path tra apici doppi.

DavideBB
19-06-2007, 13:46
Grazie andrea...tutto ok, sei un grande!

DavideBB
19-06-2007, 15:22
Ho notato che mi cancella solo i file nella cartella, ma non le cartelle all'interno, devo aggiungere qualche altro comando?
Grazie

^TiGeRShArK^
19-06-2007, 15:29
/s

DavideBB
19-06-2007, 15:39
L'avevo fatto, ma nn elimino le sottodirectory.
Quelle rimangono sempre anche se i file all'interno vengono cancellati

^TiGeRShArK^
19-06-2007, 15:49
Allora se vuoi eliminare anche le dir non devi usare DEL ma devi usare rd:

rd nomedir /s /q

DavideBB
19-06-2007, 16:01
Ma con quel comando rimuovo anche la directory stessa, io devo eliminarne solo il contenuto

BountyKiller
19-06-2007, 16:03
Ciao ragazzi,
ho un problema, voglio creare un semplice file .bat
che mi cancella i dati all'interno di una cartella che si trova in
C:\Documents and Settings\All Users\Prova

Il comando che ho inserito nel file .bat è
del C:\Documents and Settings\All Users\Prova\* /q

Il problema è che non viene eseguito, se la cartella Prova si trovasse in C va tutto bene, allora ho pensato che il problema sia nel nome delle cartelle, quindi dagli spazi eccetera, che il dos non riconosce.
Mi potreste dire come posso risolvere il problema?
Grazie!


documente and setting contiene 2 spazi è quello il problema, devi mettere il path tra virgolette come fa il completamente automatico

EDIT: ti hanno già risposto:doh:

^TiGeRShArK^
19-06-2007, 16:33
del "C:\Documents and Settings\All Users\Prova\*.*" /q /s
for /d %%i in ("C:\Documents and Settings\All Users\Prova\*.*") do rd /q /s %%i

EDIT:
Forse però bisogna prima espandere il path delle dir..
provalo da una directory base in cui non puoi fare danni e magari provalo senza /q. :p

RIEDIT: provato. Sembra funzionare...

DavideBB
19-06-2007, 16:51
Ti funziona?? a me no
Ho capito bene?
del "C:\Documents and Settings\All Users\Prova\*.*" /q /s
for /d %%i in "C:\Documents and Settings\All Users\Prova\*.*"
do rd /q /s %%i

Scusami ma quell in "C:\Documents and Settings\All Users\Prova\*.*"
fa parte del ciclo?
A me la cartella rimane sempre

^TiGeRShArK^
20-06-2007, 08:11
non puoi mettere il do nella riga di sotto, a quanto ricordo devi metterli nella stessa riga.
Inoltre non li puoi provare da riga di comando ma li devi usare per forza in un file .bat perchè la sintassi %%i x la variabile non è valida da riga di comando.
In quel caso dovresti usare la sintassi %i.
Cmq io l'ho provato e mi funziona correttamente :mbe:
Non ti da alcun errore? :fagiano:

DavideBB
20-06-2007, 12:44
Allora, capiamoci,
il mio file .cmd si trova sul desktop, e da lì svuoto la cartella prova.
All'interno del file scrivo esattamente

del "C:\Documents and Settings\All Users\Prova\*.*" /q /s
for /d %%i in ("C:\Documents and Settings\All Users\Prova\*.*") do rd /q /s %%i

Con queste righe di comando, mi cancella solo i files all'interno di prova ma nn le sottocartelle, errori nn me ne dà...ma quel comando for in è giusto?

DavideBB
20-06-2007, 15:20
Allora, togliendo il /q e quindi vedendo passo per passo, mi dice che è impossibile trovare il file specificato indicando il nome della cartella
Quindi si aspetta un file con il nome della cartella, credo!
E continua così con tutte le sottocartelle
Vi allego l'immagine.
Se guardate bene lo spazio da errori nel percorso

repne scasb
22-06-2007, 09:02
@ECHO OFF
RD "C:\Documents and Settings\All Users\Prova" /q /s
MD "C:\Documents and Settings\All Users\Prova"

DavideBB
22-06-2007, 11:36
La cartella che vorrò svuotare sarà una catella di sistema tipo
la cartella Temp, quindi non posso eliminarla per poi ricrearla.

^TiGeRShArK^
22-06-2007, 12:46
ho capito il problema:

del "C:\Documents and Settings\All Users\Prova\*.*" /q /s
for /d %%i in ("C:\Documents and Settings\All Users\Prova\*.*") do rd /q /s "%%i"

devi aggiungere le virgolette intorno all'ultimo %%i

repne scasb
22-06-2007, 16:34
La cartella che vorrò svuotare sarà una catella di sistema tipo
la cartella Temp, quindi non posso eliminarla per poi ricrearla.

Puoi cancellare e ricreare la cartella TEMP o altre cartelle senza alcun problema di sorta.

^TiGeRShArK^
22-06-2007, 18:54
ehm...
se è una dir di sistema però mi sa che deve fare prima di rd attrib -s -h -r nome_dir e dopo di md attrib +s +h +r :p

DavideBB
22-06-2007, 19:20
Grazie ^TiGeRShArK^ per i tuoi consigli e a tutti coloro che mi hanno aiutato, erano le virgolette, finalmente il problema è stato risolto, se ho qualche altro problema vi contatterò subito, ho già in mente un programmino semplice, per voi ovviamente, in C che dovrebbe utilizzare le librerie di windows, con le quali nn ho mai avuto a che fare!!!
Grazie ancora!
Davide

repne scasb
22-06-2007, 20:47
ehm...
se è una dir di sistema però mi sa che deve fare prima di rd attrib -s -h -r nome_dir e dopo di md attrib +s +h +r :p

Il comando RD e' in grado di eliminare una directory con attributo "system", senza l'utilizzo del comando attrib.

^TiGeRShArK^
23-06-2007, 10:12
Grazie ^TiGeRShArK^ per i tuoi consigli e a tutti coloro che mi hanno aiutato, erano le virgolette, finalmente il problema è stato risolto, se ho qualche altro problema vi contatterò subito, ho già in mente un programmino semplice, per voi ovviamente, in C che dovrebbe utilizzare le librerie di windows, con le quali nn ho mai avuto a che fare!!!
Grazie ancora!
Davide
de nada ;)

^TiGeRShArK^
23-06-2007, 10:15
Il comando RD e' in grado di eliminare una directory con attributo "system", senza l'utilizzo del comando attrib.

fiko una volta non lo faceva :D
ma cmq dovrebbe lo stesso usare il comando attrib per rimettere gli attributi giusti per fare una cosa pulita :p