Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Eliminare una cartella........
Nuovo argomento   Rispondi    Indice del forum -> Windows XP e Reperti Archeologici
Precedente :: Successivo  
Autore Messaggio
Lokutus
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 08/09/05 22:18
Messaggi: 129

MessaggioInviato: 02 Feb 2006 00:22    Oggetto: Eliminare una cartella........ Rispondi citando

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
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Feb 2006 02:23    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
Marcolino
Semidio
Semidio


Registrato: 27/04/05 15:26
Messaggi: 257
Residenza: Udine e dintorni

MessaggioInviato: 02 Feb 2006 09:21    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato HomePage
Lokutus
Eroe in grazia degli dei
Eroe in grazia degli dei


Registrato: 08/09/05 22:18
Messaggi: 129

MessaggioInviato: 02 Feb 2006 13:44    Oggetto: Rispondi citando

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!! Very Happy
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Feb 2006 15:20    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 02 Feb 2006 17:42    Oggetto: Re: Eliminare una cartella........ Rispondi

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

Smile
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Windows XP e Reperti Archeologici Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi