Bat copiar archivo en red.

Iniciado por m4st3rcr4zy, 29 Diciembre 2011, 18:49 PM

0 Miembros y 1 Visitante están viendo este tema.

m4st3rcr4zy

Hola de nuevo. ;D

Despues de años de no entrar aqui regreso pidiendo ayuda.

Mi situacion en la siguiente:

Necesito copiar un archivo de imagen en red (8 GB) es una imagen de norton ghost. El lugar donde esta fisicamente es "lejisimos" por lo que se descarta la solucion de ve por el archivo lo copias en un medio extraible y tan tan solucionado. Estoy intentando copiar el archivo con el xcopy y el copy en windows XP  con el parametro /Z el caso es que mi red tiene un pequeño fallo y se pierde la conexion cada x tiempo cosa que no demora mucho es cuestion de perdidas de milisegundos y necesito dejar copiando ese archivo saliendo del trabajo por lo que si alguien me puede orientar sobre como crear un batch que de alguna manera cache el mensaje de "El nombre de red especificado ya no esta disponible" y vuelva a aplicar el comando
copy "\\x.x.x.x\imagen.gho" . /Z

o el

xcopy /C /Z "\\x.x.x.x\imagen.gho"

Agradeceria su apoyo colegas.

Saludos
Si la Tierra fuera una pc, ya hubiera explotado del sobrecalentamiento

Eleкtro

#1
Hola.

Xcopy se usa para directorios, así que usaremos COPY.

Yo nunca he copiado un archivo en red, así que hay cosas que desconozco, como si el comando "Copy" da un "ERRORLEVEL 1" si la conexion falla, o si al fallar la conexion sale el mensaje ese de "El nombre de red especificado ya no esta disponible" en consola...

Así que te hago dos scripts
El primero se basa en la frase que mencionas (No puedo comprobar la eficacia del script porque no tengo una red).
El segundo script compara el tamaño del archivo de origen con el de destino, Este te va a funcionar seguro (Al menos eso creo), si el primero no lo hace.



Código (dos) [Seleccionar]
@echo off

REM Visita Foro.ElHacker.Net

Set "ORG=Imagen.gho"
Set "DEST=\\x.x.x.x\Imagen.gho"


:COPY
:::::
copy /Y /Z "%ORG%" "%DEST%" | Find /i "disponible" >nul
If %ERRORLEVEL% EQU 0 (Goto :Copy)


:END
::::
Cls
Echo.
Echo. Archivo: "%ORG%"
Echo. Copiado correctamente.
Pause >nul
Exit





Código (dos) [Seleccionar]
@echo off

REM By EleKtro H@cker
REM Visita Foro.ElHacker.Net

Set "ORG=%CD%\Imagen.gho"
Set "DEST=\\x.x.x.x\Imagen.gho"


:COPY
:::::
copy /Y /Z "%ORG%" "%DEST%" >nul
Set Size_DEST=
Call :Size %ORG%
Call :Size %DEST%


:Size
:::::
If Defined Size_ORG (
Set Size_DEST=%~z1
Goto :Compare
) ELSE (
Set Size_ORG=%~z1
Goto :EOF
)


:Compare
::::::::
IF "%SIZE_ORG%" EQU "%SIZE_DEST%" (Goto :END) else (GOTO :COPY)


:END
::::
Cls
Echo.
Echo. Archivo: "%ORG%"
Echo. Copiado correctamente.
Pause >nul
Exit










m4st3rcr4zy

Gracias colega.

Probare el segundo metodo que es el que mejor cara pinta.

Aunque he hecho algo rustico como programar una tarea que se ejecute cada minuto donde ejecuta el bat en cuestion.

Saludos
Si la Tierra fuera una pc, ya hubiera explotado del sobrecalentamiento