¿Cómo puedo día de la semana y mes en la producción por lotes (archivos de registro)?
-
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
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
¿Está utilizando un bate-archivo? Mira aquí http://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyyy-format/
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%