¿Cómo puedo día de la semana y mes en la producción por lotes (archivos de registro)?

StackOverflow https://stackoverflow.com/questions/4121202

  •  29-09-2019
  •  | 
  •  

Pregunta

Estoy intentando 7zip configuración para copias de seguridad automatizadas, pero tengo problemas con los nombres de archivo de salida.

He intentado utilizar el comando date%% pero acabo de hacer 2 directorios dentro de mi copia de seguridad.

C: \ Users \ Desktop \ dom 11 \ 07 \ 2010.7z

¿Cómo puedo hacer que sea simplemente inicia el día y el mes?

C: \ Users \ Desktop \ Sun 11-07-2010.7z

¿Fue útil?

Solución

Trate

7z a %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.7z *.*     for (YYYY-MM-DD)

o

7z a %DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%.7z *.*     for (DD-MM-YYYY)

(*. * Es la máscara de los archivos de copia de seguridad)

Otros consejos

Se puede utilizar WMI para obtener sus datos de fecha en un formato específico. El problema con la salida de date (y la variable de entorno %date%) es que es muy locale-específico.

Si se ejecuta:

wmic path win32_localtime get day^,month^,year^ /format:csv

verá la salida que necesita para el proceso.

El siguiente guión le dará el formato yyyy-mm-dd que necesita (con el día de la semana como la clave de ordenación principal no es una buena idea):

@echo off
for /f "skip=2, tokens=2-4" delims=," %%a in ('wmic path win32_localtime get day^,month^,year^ /format:csv') do (
    set /a ymd = 10000 * %%c + 100 * %%b + %%a
)
set ymd=%ymd:~0,4%-%ymd:~4,2%%ymd:~6,2%
echo %ymd%
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top