Obtener fecha del sistema en batch

26 Octubre, 2009

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!