elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con fecha en programa . bat...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con fecha en programa . bat...  (Leído 11,138 veces)
jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Problema con fecha en programa . bat...
« en: 29 Abril 2009, 19:24 pm »

Hola amigos, primero q todo saludarlos y felicitarlos pr el foro, se encuentran buenas cosas;
buscando y guiandome en el foro cree un programa para realizar un backup de una base de datos y ponerle como nombre la fecha en q se hace, en escencia lo q hace es comprimirlo con winzip y copiarlo a una ubicacion; el problema surge cuando necesito restaurar dicha base en una de prueba, todos los dias, creé el programa para restaurarla, entonces lo q hago es con el mismo codigo q le doy el nombre, identifico el backup creado y le resto 1 al dia, puesto q hago el backup a las 11pm todos los dias y lorestauro a la 1 am del siguiente dia, hasta ahi todo bien, el problema surge cuando la fecha es el primero del mes, puesto q como siempre le resto 1 al dia y cuando pongo el nombre en la parte del dia me queda 0!, cuando el primero cae en lunes, peor, porque le resto 3 y me da -2, no se q hacer, se q existe la variable date pero no se como restarle 1 para q me de la fecha anterior, espero q por favor me ayuden, aca esta el codigo de crear el backup:

Código
  1. @ECHO OFF
  2. CLS
  3. ECHO     COPIA DE SEGURIDAD DE DATOS
  4.  
  5. set dia=
  6. set mes=
  7. set año=
  8. set nombre=
  9.  
  10. for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set dia=%%a& set mes=%%b& set año=%%c)
  11.  
  12. set nombre=BOG%mes%%dia%
  13.  
  14. wzzip -P -r D:\LZHWEB\%nombre%.zip D:\bogota\bd\jord\*.*
  15.  
  16.  
  17. set nombre=SER%mes%%dia%
  18.  
  19. wzzip -P -r D:\LZHWEB\%nombre%.zip D:\servicio\bd\jord\*.*
  20.  
  21.  
  22. ECHO  PROCESO TERMINADO :
  23. TIME

y el de restaurarlo:

Código
  1. @ECHO OFF
  2. CLS
  3. ECHO     COPIA DE SEGURIDAD DE DATOS
  4.  
  5. set dia=
  6. set mes=
  7. set año=
  8. set nombre=
  9. set cont=
  10.  
  11. for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set dia=%%a& set mes=%%b& set año=%%c)
  12.  
  13. set cont=1
  14.  
  15. set /a dia=%dia%-%cont%
  16.  
  17.  
  18. set nombre=BOG%mes%%dia%
  19.  
  20. cd \
  21.  
  22. d:
  23.  
  24. cd \
  25.  
  26. cd copiabog\bd\jord
  27.  
  28. del j*.d*
  29.  
  30. wzunzip -e -o C:\LZHWEB\%nombre%.zip d:\copiabog\bd\jord
  31.  
  32.  
  33. set nombre=SER%mes%%dia%
  34.  
  35. cd \
  36.  
  37. cd copiaserv\bd\jord
  38.  
  39. del j*.d*
  40.  
  41. wzunzip -e -o C:\LZHWEB\%nombre%.zip d:\copiaserv\bd\jord
  42.  
  43. ECHO  PROCESO TERMINADO :
  44. TIME
  45.  
Gracias por la ayuda...


« Última modificación: 2 Junio 2011, 22:12 pm por Leo Gutiérrez. » En línea

jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #1 en: 29 Abril 2009, 23:16 pm »

Ayuda por favor, el viernes voy a tener el problema q describo, alguna idea? :-(


« Última modificación: 2 Mayo 2009, 06:28 am por Novlucker » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #2 en: 2 Mayo 2009, 06:30 am »

El problema que veo es determinar si el mes tiene 30 o 31 días (28/29 febrero), sería realmente sencillo hacerlo en vbs, pero en batch  :-\

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #3 en: 5 Mayo 2009, 00:03 am »

El problema que veo es determinar si el mes tiene 30 o 31 días (28/29 febrero), sería realmente sencillo hacerlo en vbs, pero en batch  :-\

Saludos

Ok, amigo, gracias, yo de vbs nada, sera q me puedes orientar como combino el script con vbs, donde puedo encontrar informacion para guiarme?, gracias por la ayuda  ::)
En línea

EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Re: Problema con fecha en programa . bat...
« Respuesta #4 en: 5 Mayo 2009, 03:53 am »

El problema que veo es determinar si el mes tiene 30 o 31 días (28/29 febrero), sería realmente sencillo hacerlo en vbs, pero en batch  :-\

Saludos

Ok, amigo, gracias, yo de vbs nada, sera q me puedes orientar como combino el script con vbs, donde puedo encontrar informacion para guiarme?, gracias por la ayuda  ::)
Aqui mismo en el foro hay un tuto colgado y es el de NovLucker:
http://foro.elhacker.net/scripting/tutorial_vbscript-t229032.0.html
Para cuando aprendas, usa Time en VBS para hacer eso..
SaluDOS!!!
En línea

jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #5 en: 5 Mayo 2009, 23:41 pm »

El problema que veo es determinar si el mes tiene 30 o 31 días (28/29 febrero), sería realmente sencillo hacerlo en vbs, pero en batch  :-\

Saludos

Ok, amigo, gracias, yo de vbs nada, sera q me puedes orientar como combino el script con vbs, donde puedo encontrar informacion para guiarme?, gracias por la ayuda  ::)
Aqui mismo en el foro hay un tuto colgado y es el de NovLucker:
http://foro.elhacker.net/scripting/tutorial_vbscript-t229032.0.html
Para cuando aprendas, usa Time en VBS para hacer eso..
SaluDOS!!!

Ok amigo, me pondre a revisar el tuto, gracias por la ayuda
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #6 en: 6 Mayo 2009, 07:07 am »

Ahora que lo miro detenidamente me doy cuenta de lo sencillo que es  :-X

No es necesario que aprendas vbs, te dejo el code:
Código
  1. wscript.echo dateadd("d",-1,wscript.arguments(0))

Solamente eso, este script recibe una fecha como parámetro, y le resta un día, para posteriormente mostrarlo en pantalla
Lo que deberías de hacer es dejar el script (*.vbs) en el mismo directorio donde esta el bat (para mayor comodida) o bien llamarlo con la ruta completa agregando una línea más o menos así (en tu bat)

Código
  1. cscript/nologo fecha.vbs %date% > fecha.txt

Como ves, simplemente lo llamas desde línea de comandos, le pasas una fecha como parámetro, en este caso la de hoy, y el script mostrará en pantalla la fecha -1 día

En tu caso puntualmente deberías de redirigir la salida a un archivo temporal (ej: fecha.txt) como he hecho en el ejemplo, ya que de este modo tendrás la fecha en un archivo al que puedes consultar luego desde tu batch.

Es decir, con esto almacenas la fecha en un archivo, y luego tu te encargas de acceder a el desde el batch y hacer lo que gustes con el contenido  ;)

Espero se haya entendido ...

Saludos


P.D: igualmente y trás ver este ejemplo (siempre y cuando se haya entendido) espero te entren ganas de aprender algo de vbs, ya que como ves con un par de líneas puedes encontrar la solución a un problema
« Última modificación: 6 Mayo 2009, 07:10 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #7 en: 8 Mayo 2009, 00:29 am »

Ahora que lo miro detenidamente me doy cuenta de lo sencillo que es  :-X

No es necesario que aprendas vbs, te dejo el code:
Código
  1. wscript.echo dateadd("d",-1,wscript.arguments(0))

Solamente eso, este script recibe una fecha como parámetro, y le resta un día, para posteriormente mostrarlo en pantalla
Lo que deberías de hacer es dejar el script (*.vbs) en el mismo directorio donde esta el bat (para mayor comodida) o bien llamarlo con la ruta completa agregando una línea más o menos así (en tu bat)

Código
  1. cscript/nologo fecha.vbs %date% > fecha.txt

Como ves, simplemente lo llamas desde línea de comandos, le pasas una fecha como parámetro, en este caso la de hoy, y el script mostrará en pantalla la fecha -1 día

En tu caso puntualmente deberías de redirigir la salida a un archivo temporal (ej: fecha.txt) como he hecho en el ejemplo, ya que de este modo tendrás la fecha en un archivo al que puedes consultar luego desde tu batch.

Es decir, con esto almacenas la fecha en un archivo, y luego tu te encargas de acceder a el desde el batch y hacer lo que gustes con el contenido  ;)

Espero se haya entendido ...

Saludos


P.D: igualmente y trás ver este ejemplo (siempre y cuando se haya entendido) espero te entren ganas de aprender algo de vbs, ya que como ves con un par de líneas puedes encontrar la solución a un problema


Hola Novlucker, primero que todo agradecerte por tu tiempo;  he probado tu código y funciona perfecto en el txt queda la fecha del dia anterior, pero no se como llamar esa fecha desde mi batch y utilizarlo en una variable: yo utilizo

for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set dia=%%a& set mes=%%b& set año=%%c)

set nombre=BOG%mes%%dia%

para darle el nombre a mi archivo, pero no se como asignarle el mes y dia del txt a las variables, nuevamente gracias por la ayuda.

En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #8 en: 8 Mayo 2009, 15:58 pm »

Tu respuesta  ;)

https://foro.elhacker.net/scripting/batch_leer_lineas_de_archivo_y_generar_opciones-t249926.0.html;msg1205401#msg1205401

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
jconnor

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: Problema con fecha en programa . bat...
« Respuesta #9 en: 9 Mayo 2009, 01:12 am »


Hola Novlucker, nuevamente gracias por tu tiempo y por la ayuda, esa era la respuesta, me guié con el post de Leo Gutierrez (gracias a el tambien), pero tenia problemas con la sintaxis del for, no entendia bien el /f o /l , buscando me encontre ésta página: http://www.robvanderwoude.com/ntfor.php y ahi ya todo claro, asi ha quedado mi script:

@ECHO OFF
CLS
ECHO.
ECHO     COPIA DE SEGURIDAD DE DATOS
ECHO.

set dia=
set mes=
set año=
set nombre=
set cont=

ECHO.

cscript/nologo fechaS.vbs %date% > fecha.txt

ECHO.


for /f "tokens=1-3 delims=/" %%a in (fecha.txt) do (set dia=%%a& set mes=%%b& set año=%%c)

set nombre=BOG%mes%%dia%

cd \

d:

cd \

cd copiabog\bd\jord

del j*.d*

wzunzip -e -o C:\LZHWEB\%nombre%.zip d:\copiabog\bd\jord

ECHO.

set nombre=SER%mes%%dia%

cd \

cd copiaserv\bd\jord

del j*.d*

wzunzip -e -o C:\LZHWEB\%nombre%.zip d:\copiaserv\bd\jord

ECHO.
ECHO  PROCESO TERMINADO :
TIME

Gracias nuevamente ;-)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
campos de fecha mysql y funciones de fecha php
PHP
SirLanceCC 9 9,352 Último mensaje 3 Enero 2008, 12:36 pm
por Hans el Topo
Calcular dias entre Fecha A y Fecha B « 1 2 »
.NET (C#, VB.NET, ASP)
Braayhaan 19 13,717 Último mensaje 22 Julio 2010, 15:23 pm
por MANULOMM
Problema con Fecha !!
Ingeniería Inversa
TrashAmbishion 1 2,339 Último mensaje 13 Marzo 2014, 20:44 pm
por tincopasan
Bloquear Programa a Cierta Fecha ??
Ingeniería Inversa
Ripzter 3 3,511 Último mensaje 6 Septiembre 2014, 05:36 am
por XresH
Problema con formatos de fecha en c#
.NET (C#, VB.NET, ASP)
Yaldabaot 0 1,767 Último mensaje 16 Agosto 2014, 06:35 am
por Yaldabaot
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines