|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
Aiuto...Utilizzo del dos nei file.bat o .cmd
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! |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
Grazie andrea...tutto ok, sei un grande!
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
Ancora una cosa
Ho notato che mi cancella solo i file nella cartella, ma non le cartelle all'interno, devo aggiungere qualche altro comando?
Grazie |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
/s
__________________
![]() |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
L'avevo fatto, ma nn elimino le sottodirectory.
Quelle rimangono sempre anche se i file all'interno vengono cancellati |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Allora se vuoi eliminare anche le dir non devi usare DEL ma devi usare rd:
Codice:
rd nomedir /s /q
__________________
![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
Ma con quel comando rimuovo anche la directory stessa, io devo eliminarne solo il contenuto
|
![]() |
![]() |
![]() |
#9 | |
Utente sospeso
Iscritto dal: Oct 2002
Messaggi: 2156
|
Quote:
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 ![]()
__________________
sign editata dallo staff |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Codice:
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 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. ![]() RIEDIT: provato. Sembra funzionare...
__________________
![]() Ultima modifica di ^TiGeRShArK^ : 19-06-2007 alle 16:36. |
![]() |
![]() |
![]() |
#11 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
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 Ultima modifica di DavideBB : 19-06-2007 alle 16:57. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
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 ![]() Non ti da alcun errore? ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
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? Ultima modifica di DavideBB : 20-06-2007 alle 15:21. |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
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 Ultima modifica di DavideBB : 20-06-2007 alle 15:28. |
![]() |
![]() |
![]() |
#15 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Codice:
@ECHO OFF RD "C:\Documents and Settings\All Users\Prova" /q /s MD "C:\Documents and Settings\All Users\Prova" |
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
La cartella che vorrò svuotare sarà una catella di sistema tipo
la cartella Temp, quindi non posso eliminarla per poi ricrearla. |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ho capito il problema:
Codice:
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"
__________________
![]() |
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
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 ![]()
__________________
![]() |
![]() |
![]() |
![]() |
#20 |
Member
Iscritto dal: Jun 2007
Messaggi: 82
|
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 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:43.