Obtener fecha del sistema en batch

El otro día tuve que dedicarme a hacer un script en batch para realizar la backup de un servidor Windows 2003, por procedimientos en mi empresa hemos de guardar un registro en un fichero log con la fecha en la que se ha generado, pero lo más curioso es que ha de ser con el siguiente formato: Servidor yyyy/mm/dd.log

En GNU/Linux-Unix es bastante sencillo debido a que las opciones del date son ilimitadas, (man date) en cambio en windows el comando date solo te permite modificar la hora y ejecutarlo con el parametro /T para que solo te la muestre.

Después de indagar un rato por la red, di con la solución:

for /f "tokens=1 delims=/" %%d in ('date /T') do (set dia=%%d)
for /f "tokens=2 delims=/" %%m in ('date /T') do (set mes=%%m)
for /f "tokens=3 delims=/" %%a in ('date /T') do (set ano=%%a)

echo %ano%%mes%%dia%

Por cosas como esta prefiero usar los sistemas del pingüino ;)

Un saludo!

About these ads

6 respuestas a Obtener fecha del sistema en batch

  1. Cerwin dice:

    Eso eso, pingüinito pingüinito xDDD.

  2. JORGE CARLOS dice:

    me pudireas enseñar a diseñar un batch donde pudiera comparar la hora del sistema yla hora que pongo ejem
    si la hora del sistema es 10:20:05 entonces yo tendria que poner una hora mas adelante 10:21:05 al llegar la hora del sistema a esta hora debria ejecutarse cualquier programa en ese lapso de tiempo tambien deberia decir
    hora no encontrada hasta que llegue la hora

  3. Samantha dice:

    Muchas gracias yo solo le agrege esto:

    for /f “tokens=1 delims=/” %%d in (‘date /T’) do (set dia=%%d)
    for /f “tokens=2 delims=/” %%m in (‘date /T’) do (set mes=%%m)
    for /f “tokens=3 delims=/” %%a in (‘date /T’) do (set ano=%%a)

    rem echo %ano%%mes%%dia%

    set mifecha=%dia%%mes%%ano%

    echo %mifecha%

    Copy “archivo.log” “archivo%mifecha%.log”

    pause;

    bye

  4. Anónimo dice:

    no se compliquen la vida agan esto

    @ECHO OFF
    cd\

    SET fecha=%date:~6,4%-%date:~3,2%-%date:~0,2%

    copy jaja.txt c:\bat\%fecha%.txt

    echo se copio archivo con fecha…: %fecha%

    pause

  5. Anónimo dice:

    JAJA, que facil mucho mas sencillo con el SET fecha
    use este:
    SET fecha=%date:~10,13%%date:~7,2%%date:~4,2%
    con algunos campos, muchas gracias
    NAOS

  6. vahl dice:

    hola, viendo lo que han opinado, necesito su ayuda, medio le entiendo a esto del bath, estoy haciendo un archivo para guardar un respaldo incremental, solo que no me funciona como deberia, ya que necesito que mi bath reconozca la fecha del sistema, y me genere el respaldo de un dia anterior, pongo mi codigo haber si alguien me ayuda, gracias.

    rem @echo off
    rem
    FOR /F “tokens=1,2,3 delims=/” %%i IN (‘DATE /T’) do (set MIDIA=%%j%%i%%k)
    FOR /F “tokens=1,2 delims=:” %%n IN (‘TIME /T’) do (set HORA=%%n%%o)

    md E:\Respaldo\”%MIDIA%_%hora%”

    xcopy E:\CarpTrabajos\*.* E:\Respaldo\”%MIDIA%_%hora%” /s /i /D:09-12-2012> E:\Respaldo

    \”%MIDIA%_%hora%”\Modificados.txt

    pause

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: