PDA

Ver la versión completa : Copiar arbol de directorios CMD!!



clinic
05-09-2007, 13:34
Hola, tengo que copiar un arbol de directorios mediante cmd con lo que pongo:

xcopy directorio origen directorio destino con los modificadores /C (para que continue si hay errores) aparte de /E/Y/Q/K/I/H/O

parece que todo copia bien pero el problema biene que cuando llega al error deja de copiar y no continua.

El error es que hay un archivo abierto por otro usuario. Que puedo hacer?
Existe otra forma de copiar arboles de directorios y archivos sin que ocurra esto?

surfman
21-09-2007, 08:44
Porque no intentas hacerlo cuando nadie este utilizando los programas, con una tarea programada con el comando AT a una hora en la que nadie este en el sistema.

clinic
21-09-2007, 09:59
Ya he comprobado eso, ahora el problema es que el error lo dá porque hay muchas carpetas anidadas con nombres muy largos y al llegar ahi casca!! y para de copiar.

surfman
21-09-2007, 11:16
Hola clinic, bueno pues la verdad es que creo que voy a traer mas dudas a este post que respuestas, la verdad es que nose mucho, pero estaba viendo en los paametros del xcopy y me pregunto... ya checaste si cin el parametro /n funciona?, no creo que sea la solucion, pero tambien lo que podrias hacer es un programita .bat que te detecte que tipo de error te da, para que sepas con exactitud el problema y asi proceder mejor a encontrar la solucion a tu problema, en la pagina de microsoft viene un programita como el que te digo, pero lo posteo aqui en unos minutos, salu2.

surfman
21-09-2007, 11:39
Ahi esta, para que funcione entras en %1 ruta a copiar y en %2 ruta destino, si la ruta tiene espacios en blanco, tienes que poner toda la ruta entre comillas. Bueno, pero que digo, si seguro tu ya has de saber todo esto, y yo aqui explicandolo, bueno de todas maneras lo explique por si las moscas.:p

NO esta probado aun, lo hice rapido, salu2.

@echo off
rem copias
rem programita para saber el error de un xcopy
xcopy %1 %2 /c /e /y /q /k /i /h /o
if errorlevel 5 goto escri
if errorlevel 4 goto inic
if errorlevel 2 goto pres
if errorlevel 1 goto nose
if errorlevel 0 goto bien
:escri
echo Error de escritura en el disco.
pause
goto fin
:inic
echo Error de inicializacion. No hay suficiente memoria en el disco,
echo se escribio un nombre de unidad no valido o se utilizo una
echo sintaxis incorrecta en la linea de comandos.
pause
goto fin
:pres
echo El usuario presiono CTRL+C para finalizar la xcopy.
pause
goto fin
:nose
echo No se encontraron archivos para copiar.
pause
goto fin
:bien
echo Los archivos se copiaron correctamente.
goto fin
:fin
Ciao
pause
exit

clinic
21-09-2007, 14:06
ok, gracias, lo probaré aunque el error, como te decia es que no se copian los arboles de directorios, es decir tengo muchas carpetas anidadas unas dentro de otras con nombres de archivos largos. Ese es el motivo de que no copie.

Saludos

surfman
22-09-2007, 02:34
Hola
bueno pues si es es el problema no se como hacerle, la verdad soy nuevo en esto de la programacion, y no se otros lenguajes al 100% para ayudarte, pero estas seguro que con el parametro /n no se puede?, porque en microsoft dice lo sig.


/n
Crea copias usando los nombres cortos de archivos o directorios de NTFS. /n es necesario cuando copie archivos o directorios de un volumen NTFS a un volumen FAT o cuando la convención de nomenclatura del sistema de archivos FAT (8,3) sea necesaria en el sistema de archivos de destino. El sistema de archivos de destino puede ser FAT o NTFS.

no se si eso e sirva, bueno, espero que algien mas te pueda ayudar, salu2.:(

clinic
24-09-2007, 09:26
Ok gracias hoy lo pruebo y te digo.
Saludos