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: 11810 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 |
|
 |
|