Agregar el día de la semana al nombre del archivo en el archivo por lotes


4

Quiero ejecutar una copia de seguridad incremental diaria y agregar el día de la semana al nombre del archivo, así que termino con:

backup_mon.bak
backup_tue.bak

etc.

Realmente no me preocupa lo que se agrega exactamente: 0 - 6 está bien.

¿Cómo hago esto?

Respuestas:


3

Como está usando esto para una copia de seguridad, presumiblemente está ejecutando el script con privilegios de administrador, en cuyo caso puede usar wmic.

for /F "tokens=2 skip=2 delims=," %%D in ('WMIC Path Win32_LocalTime Get DayOfWeek /Format:csv') do @echo %%D

Le dará el día de la semana como un número (lunes = 1).



0

Si no tiene problemas para llamar a un script externo, puede usar VBScript para obtener el día de la semana con mucha facilidad:

el código VBScript:

wscript.echo WeekdayName(Weekday(Date))

Llamarlo y usarlo en su nombre de archivo:

for /f "delims=" %%a in ('cscript /nologo dayofweek.vbs') do @set myvar=%%a
set filename=backup_%myvar%.bak

luego, en su secuencia de comandos, puede usar la variable %filename%para acceder a ella. Si ejecuté esto hoy, por ejemplo, crearía un archivo llamado backup_Sunday.bak. Asegúrese de que el archivo VBscript esté en el mismo directorio que el script por lotes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.