Como verificar errores en un fichero cmd.

Tengo un fichero de comandos .cmd que realiza la copia de un directorio de la pc al servidor y después borra el contenido del mismo, pero necesito confirmar que la copia fue satisfactoria antes de borrar el mismo. ¿Cómo logro esto?

1 respuesta

Respuesta
2

Supongo que puedes hacer un FC (File Compare) de todos los archivos del directorio copiados y suspender el borrado si alguno fuera distinto. En el caso más sencillo (que los nombres de directorios y archivos fueran los mismos) podría ser algo así:

fc %pathcarpeta%\carpeta\*.* \\server\carpeta\*.* > nul
if errorlevel 1 goto :noborrar
rem aquí estaría el borrado de la carpeta
...
:Noborrar
...

¿Resolviste este asunto?

¡Gracias GGirald!  Si resolvi, esa parte, Todo muy bien

Ahora necesito que una vez copiados la carpeta origen en la destino renombrar la destino como nombre+fechahoy. Tengo la duda si en la misma sentencia Robocopy puedo ya ponerle el nombre y como concatenarle la fecha del dia? Gracias por tu tiempo

No tengo mucha experiencia con robocopy pero parece que el formato más simple sería

robocopy origen destino /MIR

Para que destino fuera origenDDAAAA (siendo DD el día y AAAA el año con 4 cifras) bastaría poner en el bat correspondiente

Origen%date:~3,2%%date:~6,4%

¡Gracias! Lo probare, estuve viendo algo similar a lo que me propones.

Gracias por su tiempo!

Aleida

Hola!

No me funciona como quiero.. yo estoy haciendo el batch como

robocopy d:\ e:\  /e

Con esto copio toda la estructura de directorios del disco d: para el disco e:

pero necesito que aparezca todo bajo la fecha del dia de la copia. Esto es una tarea de windows que se ejecuta cada viernes de cada semana y la copia debe mantenerse separada por fecha. Me entiende?

Una saludo y buenas noches.. Aleida

No me queda claro si lo que quieres es que la copia del disco d: que haces sobre el disco c:, digamos hoy, esté en e:\26012018\ y la del próximo viernes en e:\02022018\ o alguna otra cosa. Dime como sería y veremos como debería hacerse.

Supongo que la tarea windows que se ejecuta cada viernes es el propio bat que hace la copia o lo incluye.

Si, eso es lo que necesito que cada salva tenga se cree en una carpeta con la fecha del día.

Prueba con algo así:

@echo off
Robocopy d:\ e:\%Date:~0,2%%Date:~3,2%%Date:~6,4%\ /e

Esto debe ejecutar el comando robocopy d:\ e:\ddmmaaaa\ /e y por tanto crear una copia de todo el disco d: con su estructura de directorios y datos en la carpeta e:\ddmmaaaa (siendo dd el día, mm el mes y aaaa el año con 4 cifras). El funcionamiento del Date es "regional", por lo que puede que no resulte igual si está configurada la región como Español(España) o como English (US) por ejemplo, pero siempre se puede encontrar la forma de que salga bien. Puedes hacer una prueba previa precediendo el robocopy de un echo. De esta forma verás lo que entiende el bat y como lo "traduce" antes de ejecutar de verdad el comando. Sería algo así:

@echo off
Echo robocopy d:\ e:\%Date:~0,2%%Date:~3,2%%Date:~6,4%\ /e

Si no funciona como esperas saca un pantallazo o alguna información para que podamos echarle un vistazo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas