Inicio > MS-DOS > guindows > copiar ficheros desde un fichero

copiar ficheros desde un fichero

Experto:
Usuario:
Fecha: 02/03/2008
Valoración: (3,00 sobre 5) Categoría: MS-DOS
05/10/2007
asantin, usuario preguntando en MS-DOS
Usuario
Hola experto, aquí tengo un reto pepsi:
¿Cómo se podría montar un bat que copie los ficheros que se encuentren en otro fichero, pasando el fichero o el contenido como parámetros?
Muchas gracias.
05/10/2007
asantin, experto respondiendo en MS-DOS
Experto
Veamos, no aclaras mucho el tema...
Dentro del fichero lo que tendras seran los nombres de los ficheros a copiar, asi como sus ubicaciones, ademas donde los quieres copiar?...
Hace tiempo hice un bat que hacia algo parecido te lo remito para que veas si te puede solucionar el tema..
Copia todas las lineas siguientes aun fichero bat llamado makecopy.bat
ejemplo de una llamada makecopy d:\ c:\ fotos\ jpg --> Estro rastrea el disco D desde el directorio raiz, el destino de la copia es el disco c:\ y en el directorio fotos\ y los ficheros buscados son los de extension jpg

rem parametros
rem %1 drive origen........ d:\ el disco o directorio que se desea rastrear siempre terminado en \
rem %2 drive destino........ c:\ simplemento eso la letra de la unidad que se desea sea el distino
rem %3 directorio destino .. midirectorio\misfotos\ el resto del path siempre terminado en \
rem %4 extension a copiar... jpg pues simplemente eso, la extension que se desea copiar
rem ejemplo de una llamada makecopy d:\ c:\ fotos\ jpg

del %2%3*.* /Q /S
rd %2%3
rem borramos el contenido (ficheros) y el conteniente (directorio destino)
rem para evitar el error de copia ciclicla

del %2directorio.txt /S
rem borramos el fichero conteniendo la estructura de directorios

del %2makefile.txt /S
rem Borramos el fichero que contien los diferentes ficheros a copiar



dir %1*. /B >%2directorio.txt
rem obtenemos todos los directoios que deseamos rastrear desde nuestro origen y lo guardmos en un fichero texto
rem en este momento AUN no existe nuestro destino, por lo que no nos dara copia ciclica

for /F "tokens=1" %%A in (%2directorio.txt) do xcopy %1%%A\*.%4 %2%3 /S /L >>%2makefile.txt
rem rastreamos cada uno de los diferentes directoios y obtenomos los ficheros que queremos copiar.
rem observa que el fichero makefile es ahora de adiccion (dobe mayor que)


md %2%3
rem simpre creamos el directorio de destion %2%3


rem xcopy %1*.%4 %2%3 /S /L >%2makefile.txt
rem con este xcopy rastreamos el disco origen (%1) buscando los ficheros con extsncion(*.%4) recursivamente
rem y por cada encuentro existoso se escibe una linea en el fichero de salida %2makefile.txt


for /F "tokens=1" %%B in (%2makefile.txt) do copy %%B %2%3
rem por cada linea escrita en el fichero makefile realizamos la copia de dicho fichero al destino.

copy %1*.%4 %2%3

rem esto esta probado usuando dos discos es decir el origen de busqueda en D:\ y el destini de salida en c:\
rem para rastrear un subdirectoio llamado afotos del origen seria
rem makecopy d:\afotos\ c:\ fotos\ jpg
02/03/2008
asantin, usuario preguntando en MS-DOS
Usuario
muchas gracias, aunque mi demora en la respuesta no ha sido por descuido sino por causas mayores, disculpas y otra vez gracias por la respuesta me ha sido de gran ayuda.
Más opciones
Enlaces patrocinados