Actualización: ahora que es 2016, usaría PowerShell para esto a menos que haya una razón realmente convincente compatible con versiones anteriores, particularmente debido al problema de configuración regional con el uso date
. Ver https://stackoverflow.com/a/19799236/8479 de @ npocmaka
¿Qué es una (s) declaración (s) de línea de comando de Windows que puedo usar para obtener la fecha y hora actual en un formato que puedo poner en un nombre de archivo?
Quiero tener un archivo .bat que comprima un directorio en un archivo con la fecha y hora actuales como parte del nombre, por ejemplo Code_2008-10-14_2257.zip
. ¿Hay alguna manera fácil de hacer esto, independientemente de la configuración regional de la máquina?
Realmente no me importa el formato de fecha, idealmente sería aaaa-mm-dd, pero cualquier cosa simple está bien.
Hasta ahora tengo esto, que en mi máquina me da Tue_10_14_2008_230050_91
:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Puedo vivir con esto, pero parece un poco torpe. Idealmente, sería más breve y tendría el formato mencionado anteriormente.
Estoy usando Windows Server 2003 y Windows XP Professional. No quiero instalar utilidades adicionales para lograr esto (aunque me doy cuenta de que hay algunas que harán un buen formato de fecha).
[datetime]::now.tostring("yyyy-MM-dd")