PDA

Visualizza la versione completa : copia lista file in batch


teddy92
13-06-2008, 22:44
ciao a tutti
voglio creare un file batch che mi copi tutti i file presenti in una lista in una cartella di destinazione scelta da me...
un esempio di lista sarebbe:

C:\Programme\Movie Maker\Shared\Sample2.jpg
C:\Programme\Real\RealPlayer\DataCache\Devices\cd_ burn.jpg
C:\Programme\Real\RealPlayer\DataCache\Devices\mp3 _player.jpg
C:\Programme\Real\RealPlayer\Firstrun\index_02.jpg
C:\Programme\Real\RealPlayer\Firstrun\index_03.jpg
C:\Programme\Real\RealPlayer\Firstrun\index_04.jpg
C:\Programme\Real\RealPlayer\Firstrun\index_05.jpg
C:\Programme\Real\RealPlayer\Firstrun\index_06.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\cel ls.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\clo uds.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\clo uds2.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\hea rt.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\Ima ge415.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\kai te.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\lic hen.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\man yfish.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\one fish.jpg
C:\Programme\Winamp\Plugins\Milkdrop2\textures\pap er.jpg

che con un file bat li voglio copiare in "cartelladidestinazione".
non so bene come si usa il coando for quindi chiedo aiuto a voi!
qualcuno saprebbe come fare?
grazie in anticipo

123delphi321
14-06-2008, 08:36
cioa

io uso un file bach per farmi delle copie di backup da un disco all'altro usando il comando xcopy.
copio la mia cartella origine in un altra cartella destinazione rinominandola con data e ora..

es

cartella origine: f:\prog\mioprogramma
cartella destin: c:\backup\mioprogramma YYYYMMDDhhmmss



@echo off
:: variables
SET dateV="%date:~6,6%%date:~3,2%%date:~0,2%"
if %time:~0,2% leq 9 (set timeV="0%time:~1,1%%time:~3,2%%time:~6,2%") else (set timeV="%time:~0,2%%time:~3,2%%time:~6,2%")
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
echo ### Backing up directory...
%backupcmd% "F:\Prg\MioProgramma" "C:\Documents and Settings\x\Desktop\Backup\MioProgramma %dateV%%timeV%"

echo Backup Completato!
@pause


ciao

teddy92
14-06-2008, 19:17
Originariamente inviato da 123delphi321
cioa

io uso un file bach per farmi delle copie di backup da un disco all'altro usando il comando xcopy.
copio la mia cartella origine in un altra cartella destinazione rinominandola con data e ora..

es

cartella origine: f:\prog\mioprogramma
cartella destin: c:\backup\mioprogramma YYYYMMDDhhmmss



@echo off
:: variables
SET dateV="%date:~6,6%%date:~3,2%%date:~0,2%"
if %time:~0,2% leq 9 (set timeV="0%time:~1,1%%time:~3,2%%time:~6,2%") else (set timeV="%time:~0,2%%time:~3,2%%time:~6,2%")
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y
echo ### Backing up directory...
%backupcmd% "F:\Prg\MioProgramma" "C:\Documents and Settings\x\Desktop\Backup\MioProgramma %dateV%%timeV%"

echo Backup Completato!
@pause


ciao

no questo on fa per me perché io devo copiare i file presenti in una lista che hanno diverse fonti. grazie comunque!
qualcun altro saprebbe aiutarmi?

oregon
14-06-2008, 19:19
Utilizza uno script (ad esempio un vbs) ...

123delphi321
14-06-2008, 20:02
...e quale e' il problema???

crea una cartella dove copierai i file... ad esempio c:\backup

crea un file batch che chiami copia.bat:



copy C:\Programme\Movie Maker\Shared\Sample2.jpg c:\backup\Sample2.jpg
copy C:\Programme\Real\RealPlayer\DataCache\Devices\cd_ burn.jpg c:\backup\cd_burn.jpg



va bene cosi?

oregon
14-06-2008, 20:22
Originariamente inviato da 123delphi321
...e quale e' il problema???

Lui parte da un file di testo che contiene l'elenco dei file da copiare ...

Puo' evitare tanti problemi tramite un po' di righe vbscript ...

teddy92
14-06-2008, 21:54
grazie delle risposte!
per 123delphi321:
io ho un file di testo con tutti i percorsi e quindi non posso riscrivere tutto con il comando copy, altrimenti non avrebbe senso.

io non so il visual basic!qualcuno mi saprebbe indicare uno script da usare?e si potrebbe codificare in un exe da integrarlo nel bat?

123delphi321
15-06-2008, 14:58
ciao,

scuasate, ma non avevo capito che teddy92 partiva da un file txt dove era registrata la lista dei file da copiare.

vorrei proporre una soluzione a questo tuo problema, ma ti consiglio, di aspettare sempre i buoni suggerimenti di Oregon

se questa volta non ho capito male.... farei cosi:

hai un file in cui sono registrati i file da copiare: tale ListaFile.txt

creati una cartella di backup (io l'ho chiamata c:\bck)
creati un file CopiaLista.bat in cui scrivi questo codice:



@:: variables
@set backupcmd=copy
@cls
@echo.
@echo Controllo files...
@echo.
@echo off
for /f "tokens=1 delims=:" %%a in ('findstr /N /R "." Listafile.txt') do set count=%%a
@echo.
@echo Ci sono %count% file(s) da copiare
@echo.
@echo Inizio copia file(s)...
@echo -----------------------------
@echo.
@echo off
for /f "tokens=*" %%a in (Listafile.txt) do (%backupcmd% "%%a" c:\bck)
@echo.
@echo -----------------------------
@echo fine copia file(s)...
@pause



fatemi sapere se va bene

ciao

teddy92
16-06-2008, 20:29
Originariamente inviato da 123delphi321
ciao,

scuasate, ma non avevo capito che teddy92 partiva da un file txt dove era registrata la lista dei file da copiare.

vorrei proporre una soluzione a questo tuo problema, ma ti consiglio, di aspettare sempre i buoni suggerimenti di Oregon

se questa volta non ho capito male.... farei cosi:

hai un file in cui sono registrati i file da copiare: tale ListaFile.txt

creati una cartella di backup (io l'ho chiamata c:\bck)
creati un file CopiaLista.bat in cui scrivi questo codice:



@:: variables
@set backupcmd=copy
@cls
@echo.
@echo Controllo files...
@echo.
@echo off
for /f "tokens=1 delims=:" %%a in ('findstr /N /R "." Listafile.txt') do set count=%%a
@echo.
@echo Ci sono %count% file(s) da copiare
@echo.
@echo Inizio copia file(s)...
@echo -----------------------------
@echo.
@echo off
for /f "tokens=*" %%a in (Listafile.txt) do (%backupcmd% "%%a" c:\bck)
@echo.
@echo -----------------------------
@echo fine copia file(s)...
@pause



fatemi sapere se va bene

ciao

ho risolto in un modo un po piú semplice:
for /f "usebackq delims=;" %%a in ("c:\tuo_percorso\....\elenco.txt") do copy "%%a" "c:\tuo_percorso\....\cartella_destinazione"

grazie comunque!
ciao ciao

Loading