Tengo un script por lotes que muestra un archivo, y estoy tratando de garantizar que cada vez que se ejecuta el script, no se sobrescriban los archivos existentes, así que estoy tratando de poner una marca de tiempo en eso.Marca de tiempo de nombre de archivo en Windows CMD script por lotes
Actualmente tengo unas pocas cosas:
set stamp=%DATE:/=-%_%TIME::=-%
Pero si el tiempo es 1-9 AM, se da algo así como:
13-06-2012_ instead of a full 13-06-2012_12-39-37.28
¿Cómo puedo solucionar este problema?
Estoy utilizando Windows 7 , y la salida de echo %date% %time%
en una ventana de línea de comandos es (mi formato de reloj para la 'fecha corta' está configurado para mostrar de 3 letras meses):
03-Sep-12 9:06:21.54
Editar: He estado usando la siguiente marca de tiempo por un buen tiempo ahora, funciona bien.
set timestamp=%DATE:/=-%_%TIME::=-%
set timestamp=%timestamp: =%
Se produce una marca de tiempo como: 18-03-2013_13-37-43.26
, mediante la sustitución de /
y :
en %TIME%
y %DATE%
, a continuación, extracción de espacio en blanco. El espacio en blanco era el problema en mi pregunta original, realmente.
perdón que parece devolver una fecha no válida también, tengo '-06-2012_01' – bryc
He hecho una edición. Esto debería arreglarlo para que sea 2012-06-14_12-47-PM –
¿Por qué no hacerlo todo en una sola línea? 'for/f" tokens = 2-8 delims =.:/"%% a in ("% date%% time% ") do set DateNtime = %% c - %% a - %% b _ %% d-% % e - %% f. %% g' Este ejemplo utiliza el reloj de 24 horas en lugar de 12 horas + AM/PM e incluye los milisegundos. Si no quiere los milisegundos, simplemente no use '%% g'. –