| Precedente :: Successivo | 
	
	
		| Autore | Messaggio | 
	
		| Lokutus Eroe in grazia degli dei
 
  
 
 Registrato: 08/09/05 22:18
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 02 Feb 2006 00:22    Oggetto: Eliminare una cartella........ |   |  
				| 
 |  
				| Salve, sto cercando di realizzare un files batch che effettui in modo automatico l'equivalente di un "taglia-incolla" manuale.
 
 Riferendomi all'esempio, la mia idea era quella di effettuare la copia di tutti i files e delle sotto directory contenute in "1" in un'altra directory di destinazione "2", e sono riuscito a realizzarlo tramite questo comando:
 xcopy c:\1 e:\2 /e /c /i /h /y
 
 per poi eliminare tutti i files e le sotto directory appena copiate con questo comando:
 del c:\1 /f /s /q
 
 
 Il problema è proprio qui, in un certo senso il comando "del" associato al parametro /s fa il suo dovere troppo bene non limitandosi ad eliminare i files e le sotto directory della cartella "1", ma eliminando anche la stessa cartella "1"!
 Come posso evitare che la cartella "1" venga eliminata?
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| GrayWolf Dio maturo
 
  
  
 Registrato: 03/07/05 17:24
 Messaggi: 2325
 Residenza: ... come frontiera i confini del mondo...
 
 | 
			
				|  Inviato: 02 Feb 2006 02:23    Oggetto: |   |  
				| 
 |  
				| devi sottometterti alla cartella e poi cancellare i files
 
 
  	  | Codice: |  	  | prompt>cd 1 prompt>del *.*
 | 
 
 se vuoi essere più sicuro
 
 
  	  | Codice: |  	  | prompt>del *.ext_1 prompt>del *.ext_2
 ...
 ...
 prompt>del *.ext_n
 | 
 
 fino ad esaurimento dei tipi da files da cancellare
 
 EDIT:
 attenzione: assicurati di essere sottomesso alla cartella 1 altrimenti cancelli i files nella cartella padre e se questa è la radice.... ciao ciao files
 
 EDIT 2:
 per eliminare le subdir poi, usi l'opzione /s
 
 eseguendolo in due passi hai la possibilità di un maggiore controllo
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| Marcolino Semidio
 
  
  
 Registrato: 27/04/05 15:26
 Messaggi: 257
 Residenza: Udine e dintorni
 
 | 
			
				|  Inviato: 02 Feb 2006 09:21    Oggetto: |   |  
				| 
 |  
				| ma perché semplicemente non usare il comando move? 
 
  	  | Citazione: |  	  | move /?
 Sposta file e rinomina file e directory.
 
 Per spostare uno o più file:
 MOVE [/Y | /-Y] [unità:][percorso]nomefile1[,...] destinazione
 
 Per rinominare una directory:
 MOVE [/Y | /-Y] [unità:][percorso]nomedir1 nomedir2
 
 [unità:][percorso]nomefile1 Specifica la posizione e il nome del o dei file
 da spostare.
 destinazione             Specifica la nuova posizione del file. La destinazion
 e
 può essere una lettera di unità e due punti, un
 nome di directory o una combinazione. Se si sposta
 solo un file, è possibile includere un nome file se
 si desidera rinominare il file mentre lo si sposta.
 [unità:][percorso]nomedir1  Specifica la directory da rinominare.
 nomedir2                Specifica il nuovo nome della directory.
 
 /Y                      Elimina la richiesta della conferma per
 sovrascrivere un file di destinazione esistente.
 /-Y                     Richiesta della conferma per sovrascrivere
 un file di destinazione esistente.
 
 L'opzione /Y può essere presente nella variabile di ambiente COPYCMD,
 ma può essere evitata con /-Y nella riga di comando.  L'impostazione predefinita
 
 è di chiedere conferma per le sovrascritture a meno che il comando MOVE non sia
 eseguito dall'interno di
 uno script batch.
 
 | 
 
 m.
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| Lokutus Eroe in grazia degli dei
 
  
 
 Registrato: 08/09/05 22:18
 Messaggi: 129
 
 
 | 
			
				|  Inviato: 02 Feb 2006 13:44    Oggetto: |   |  
				| 
 |  
				| ok, con 
 c:\cd 1
 c:\1\del *.*
 
 elimino tutti i files contenuti nella cartella "1" e anche tutti quelli contenuti nelle varie sotto directory, però poi mi rimangono tutte le cartelle vuote!
 Tu dicevi di eliminare le cartelle vuote rimanenti usando l'opzione /s ma con quel parametro vengono cancellati i files delle varie sotto cartelle, non le cartelle stesse.
 "/S         Elimina i file specificati da tutte le sottodirectory."
 
 Per quanto riguarda il move, da quello che ho capito, non è in grado di spostare contemporaneamente files, directory, files nelle sotto directory, directory nelle sotto directory e così via. Ho scritto così:
 C:\>move c:\1 e:\2
 
 Ora per quanto riguarda il move, spero di aver capito male io, perchè se così fosse averi risolto!!
  |  | 
	
		| Top |  | 
	
		|  | 
	
		| GrayWolf Dio maturo
 
  
  
 Registrato: 03/07/05 17:24
 Messaggi: 2325
 Residenza: ... come frontiera i confini del mondo...
 
 | 
			
				|  Inviato: 02 Feb 2006 15:20    Oggetto: |   |  
				| 
 |  
				| Infatti... i comandi dos sono puntuali per le directories
 
 Infatti la rimozione di una directory è demandata al comando rd
 
 la sintassi per rimuovere le dir e loro sottodir è:
 
 prompt>rd 11 se è una delle subdir di 1
 
 questo è l'help del comando
 
  	  | Citazione: |  	  | Microsoft Windows 2000 [Versione 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp.
 
 Rimuove (elimina) una directory.
 
 RMDIR [/S] [/Q] [unità:]percorso
 RD [/S] [/Q] [unità:]percorso
 
 /S      Rimuove tutte le directory e file nella directory specificata
 oltre alla directory stessa. Usato per rimuovere l'intera
 struttura di una directory.
 
 /Q      Inibisce la richiesta di conferma alla rimozione della directory
 eseguita con /S.
 | 
 
 con molta attenzione potresti effettuare queste operazioni in sequenza:
 xcopy
 sottomissione alla cartella padre di 1
 rd 1
 md 1
 
 l'ultimo comando ricrea la dir 1 dopo averne cancellato i contenuti
 e nella sua forma complessa potresti anche ricreare l'albero come spiegato qua:
 
  	  | Citazione: |  	  | Crea una directory. 
 MKDIR [unità:]percorso
 MD [unità:]percorso
 
 Se le estensioni ai comandi sono abilitate, MKDIR cambia come segue:
 
 MKDIR crea le directory intermedie nel percorso, se necessario.
 Per esempio, ipotizzando che \a non esiste, allora:
 
 mkdir \a\b\c\d
 
 è analogo a:
 
 mkdir \a
 chdir \a
 mkdir b
 chdir b
 mkdir c
 chdir c
 mkdir d
 
 che rappresenta ciò che si deve digitare con le estensioni disabilitate.
 | 
 |  | 
	
		| Top |  | 
	
		|  | 
	
		| SverX Supervisor Macchinisti
 
  
  
 Registrato: 25/03/02 12:16
 Messaggi: 11861
 Residenza: Tokelau
 
 | 
			
				|  Inviato: 02 Feb 2006 17:42    Oggetto: Re: Eliminare una cartella........ |   |  
				| 
 |  
				|  	  | Lokutus ha scritto: |  	  | ...per poi eliminare tutti i files e le sotto directory appena copiate con questo comando: del c:\1 /f /s /q
 Il problema è proprio qui, in un certo senso il comando "del" associato al parametro /s fa il suo dovere troppo bene non limitandosi ad eliminare i files e le sotto directory della cartella "1", ma eliminando anche la stessa cartella "1"!
 Come posso evitare che la cartella "1" venga eliminata?
 | 
 
 scrivendo
 
 del c:\1\*.* /f /s /q
 
 
  |  | 
	
		| Top |  | 
	
		|  | 
	
		|  |