Discussione:
Copia struttura cartelle file
(troppo vecchio per rispondere)
Frederic
2009-06-16 15:33:44 UTC
Permalink
e possibile con il linguaggio batch, copiare la struttura
di una cartella con tutte le sottocertelle e file, ma i file
devono essere vuoti.


Vi ringrazio


Ciao
Reventlov
2009-06-16 20:47:53 UTC
Permalink
Post by Frederic
e possibile con il linguaggio batch, copiare la struttura
di una cartella con tutte le sottocertelle e file, ma i file
devono essere vuoti.
Se è una domanda manca il punto di domanda.
La risposta potrebbe essere xcopy.

Copia i file e le strutture di directory.

XCOPY source [destinazione] [/A | /M] [/D[:data]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]

/T Crea la struttura di directory, ma non copia i file. Non include
le directory o sottodirectory vuote. /T /E include directory
e sottodirectory vuote.

Non ho capito cosa intendi per "i file devono essere vuoti". Ogni file deve essere
sostituito da un file a lunghezza zero con lo stesso nome?
--
Giovanni Cenati (Bergamo, Italy)
Write to "Reventlov" at katamail com
http://digilander.libero.it/Cenati (Esempi e programmi in VbScript)
--
Frederic
2009-06-17 11:02:39 UTC
Permalink
Post by Reventlov
La risposta potrebbe essere xcopy.
Copia i file e le strutture di directory.
XCOPY source [destinazione] [/A | /M] [/D[:data]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
[/EXCLUDE:file1[+file2][+file3]...]
/T Crea la struttura di directory, ma non copia i file. Non include
le directory o sottodirectory vuote. /T /E include directory
e sottodirectory vuote.
Non ho capito cosa intendi per "i file devono essere vuoti". Ogni file deve essere
sostituito da un file a lunghezza zero con lo stesso nome?
...si. deve essere creato il file con lo stesso nome, ma deve essere di zero
byte.

Ciao
Reventlov
2009-06-18 16:13:45 UTC
Permalink
Post by Frederic
Post by Reventlov
Non ho capito cosa intendi per "i file devono essere vuoti". Ogni file deve essere
sostituito da un file a lunghezza zero con lo stesso nome?
...si. deve essere creato il file con lo stesso nome, ma deve essere di zero
byte.
Questo non lo so fare. Forse con un for sulla vecchia struttura di directory si può creare
un file nella nuova struttura.
DIR /B /S >lista.txt
crea un file con tutti i pathname. Da questo si potrebbe copiare un file a lunghezza zero
in ciascun nuovo path.
Devi proprio usare un bat? Le due strutture di directory sono sullo stesso disco?
--
Giovanni Cenati (Bergamo, Italy)
Write to "Reventlov" at katamail com
http://digilander.libero.it/Cenati (Esempi e programmi in VbScript)
--
Frederic
2009-06-19 11:23:28 UTC
Permalink
Post by Reventlov
Devi proprio usare un bat? Le due strutture di directory sono sullo stesso disco?
possono anche essere sullo stesso disco ma anche su un altro disco
o su una memoria usb.

Ma un programma programma no? non c'è ne sono?

Ciao
gioacchino
2009-06-18 17:46:09 UTC
Permalink
Post by Frederic
Post by Reventlov
Non ho capito cosa intendi per "i file devono essere vuoti". Ogni file deve essere
sostituito da un file a lunghezza zero con lo stesso nome?
...si. deve essere creato il file con lo stesso nome, ma deve essere di
zero byte.
Ciao
Qui una soluzione purtroppo incompleta... supponendo di copiare da una
directory 'a' ad una 'b':

@echo off
xcopy a\*.* b\ /E >nul
dir b /S/B >lista
...
echo.RCX>deb
echo.0>>deb
echo.w>>deb
echo.q>>deb
type deb|debug nome_del_file>nul

Dopo aver copiato i file e la struttura delle directory bisogna azzerare
la dimensione di tutti i file. Viene quindi creata la lista dei file e
directory nel file lista.
Poi si dovrebbe poter modificare ogni riga (escludendo in qualche modo le
directory) da questo (ad esempio):
c:\temp\b\file.txt
a questo:
type deb|debug c:\temp\b\file.txt>nul
che di fatto crea un file di lunghezza zero.

Il problema è quello di poter generare un ciclo uno per ogni riga e
aggiungere all'inizio:
type deb|debug
Post by Frederic
nul
Reventlov
2009-06-20 12:19:07 UTC
Permalink
Post by gioacchino
Qui una soluzione purtroppo incompleta... supponendo di copiare da una
@echo off
xcopy a\*.* b\ /E >nul
dir b /S/B >lista
...
echo.RCX>deb
echo.0>>deb
echo.w>>deb
echo.q>>deb
type deb|debug nome_del_file>nul
Dopo aver copiato i file e la struttura delle directory bisogna azzerare
la dimensione di tutti i file. Viene quindi creata la lista dei file e
directory nel file lista.
Poi si dovrebbe poter modificare ogni riga (escludendo in qualche modo le
c:\temp\b\file.txt
type deb|debug c:\temp\b\file.txt>nul
che di fatto crea un file di lunghezza zero.
Una volta creata la lista si riesce con un FOR a cancellare il file ed a copiare un file
vuoto nella stessa posizione?
E' brutto perchè prima si copiano i file interi e poi si cancellano.
--
Giovanni Cenati (Bergamo, Italy)
Write to "Reventlov" at katamail com
http://digilander.libero.it/Cenati (Esempi e programmi in VbScript)
--
gioacchino
2009-06-20 16:18:43 UTC
Permalink
Post by Reventlov
Una volta creata la lista si riesce con un FOR a cancellare il file ed a
copiare un file vuoto nella stessa posizione?
E' brutto perchè prima si copiano i file interi e poi si cancellano.
Non conosco altro modo. Ovviamente se nessuno conosce altre strade in
batch prova a fare la stessa cosa con un linguaggio di programmazione,
magari un programma in c o in qbasic che dovrebbe essere incluso nelle
vecchie versioni del dos.
Badrune
2010-01-07 14:50:51 UTC
Permalink
Post by Frederic
e possibile con il linguaggio batch, copiare la struttura
di una cartella con tutte le sottocertelle e file, ma i file
devono essere vuoti.
Robocopy /CREATE

mi ero sempre chiesto il perché.
e per ora la risposta è "dare la risposta in questo NG"

:-)

a te perché serve?

sono curioso!! :)

Continua a leggere su narkive:
Loading...