Título: Hacer un Batch de control de versión
Publicado por: ShootingStar en 24 Octubre 2011, 23:11 pm
Estimados amigos: Quizás alguien me pueda orientar como resolver esta situación. Tengo este escenario: un servidor y un par de terminales, en el servidor se graba el menu.exe actualizado, pero cada terminal debe verificar antes de ejecutar, si la versión de menu.exe es más nueva q’la de la terminal, en ese caso antes de ejecutarlo debe copiarlo desde el servidor a la terminal y luego si ejecutarlo. Si el .exe del servidor es +nuevo que el de la terminal REEMPLAZAR ------------------------------------------------------------ @Echo off ArchExe := ‘menu.exe’ Ruta1 := ‘Unidad1:\Direct\SubDirect\’ Ruta2 := ‘Unidad2:\Direct\SubDirect\’
Item1 := Ruta1 + ArchExe Item2 := Ruta2 + ArchExe
Rem Comienzo, pregunta por el 1º :Paso1 IF EXIST %Item1% goto Paso2 goto End
Rem Si encontró el 1º, pregunta por el 2º :Paso2 IF EXIST %Item2% goto Paso3 goto End
Rem Compara el 1º con el 2º :Paso3 IF NOT COMPARACION goto Paso4 goto End
Rem Reemplaza :Paso4 Copy %Item1% %Item2% goto End
:End Menu.exe ----------------------------------------------------------- Este es el esquema que traté de llevar adelante, pero no supe que usar para hacer la COMPARACION
Título: Re: Hacer un Batch de control de versión
Publicado por: DameBanda en 5 Noviembre 2011, 15:01 pm
Hola, no entendí muy bien. Dices que esto es batch? en tal caso será pseudocode no?? :-[ Dices que compara, [los archivos, las versiones, etc??]
Por favor, se un poco mas específico ;)
Título: Re: Hacer un Batch de control de versión
Publicado por: Eleкtro en 6 Noviembre 2011, 10:49 am
No he probado demasiado mi modificación pero creo que no he cometido ningún error, ya nos cuentas :) Rem EleKtrO H@ckeR Set Ruta1= "Unidad1:\Direct\SubDirect\" Set Ruta2= "Unidad2:\Direct\SubDirect\" Set Item1="Ruta1\ArchExe" Set Item2="Ruta2\ArchExe" Rem Comienzo, pregunta por el 1º :Paso1 Rem Si encontró el 1º, pregunta por el 2º :Paso2 ################################################################################################################################ >nul :Paso3 REM Seteamos la fecha y la hora de creacion del Item 1 e Item 2... For /F "Tokens=1,2,3*" %%a in (' dir /tc/od "ITEM1.EXE" ^| Find "ITEM1.EXE"' ) do ( Set Fecha_de_creacion_Item1= %%a Set Hora_de_creacion_Item1= %%b ) For /F "Tokens=1,2,3*" %%a in (' dir /tc/od "ITEM2.EXE" ^| Find "ITEM2.EXE"' ) do ( Set Fecha_de_creacion_Item2= %%a Set Hora_de_creacion_Item2= %%b ) Rem Compara el 1º con el 2º :Creation Date REM Si la fecha de creacion del item 1 es mayor que el 2... If %Fecha_de_creacion_Item1:~-0,5% GTR %Fecha_de_creacion_Item2:~-0,5% (Goto : Paso4) REM Si la fecha de creacion del item 1 es menor que el 2... If %Fecha_de_creacion_Item1:~-0,5% LSS %Fecha_de_creacion_Item2:~-0,5% (Goto : End) REM Si la fecha de creacion del item 1 es igual que el 2... If %Fecha_de_creacion_Item1:~-0,5% EQU %Fecha_de_creacion_Item2:~-0,5% (Goto : Creation Hour ) echo+ ERROR en la comparacion :Creation Hour REM Si la hora de creacion del item 1 es mayor que el 2... If %Hora_de_creacion_Item1% GTR %Hora_de_creacion_Item2% (Goto : Paso4) REM Si la hora de creacion del item 1 es menor que el 2... If %Hora_de_creacion_Item1% LSS %Hora_de_creacion_Item2% (Goto : End) REM Si la hora de creacion del item 1 es igual que el 2... If %Hora_de_creacion_Item1% EQU %Hora_de_creacion_Item2% (Goto : End) echo+ ERROR en la comparacion ################################################################################################################################ >nul Rem Reemplaza :Paso4 :End "Menu.exe"
|