Adicionando o dia da semana ao nome do arquivo no arquivo de lote

4

Eu quero executar um backup incremental diário e acrescentar o dia da semana ao nome do arquivo. Assim, acabo com:

backup_mon.bak
backup_tue.bak

etc.

Não é realmente incomodado sobre o que exatamente é acrescentado - 0 - 6 é bom.

Como faço para isso?

    
por Roaders 03.01.2010 / 18:37

3 respostas

3

Como você está usando isso para um backup, provavelmente está executando o script com privilégios de administrador; nesse caso, você pode usar o wmic.

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

Dará o dia da semana como um número (segunda-feira = 1).

    
por 12.11.2012 / 15:03
2

Dê uma olhada em matemática avançada de data e hora em arquivos em lote. Você encontra lá uma sub-rotina que converte uma data no calendário juliano e outra que lhe dirá o dia da semana.

    
por 03.01.2010 / 19:12
0

Se você não tem problemas para chamar um script externo, você pode usar o VBScript para obter o dia da semana com muita facilidade:

o código VBScript:

wscript.echo WeekdayName(Weekday(Date))

Chamando e usando em seu nome de arquivo:

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

depois, no seu script, você pode usar a variável %filename% para acessá-la. Se eu executasse isso hoje, por exemplo, criaria um arquivo chamado backup_Sunday.bak . Assegure-se de que o arquivo VBscript esteja no mesmo diretório que o script em lote.

    
por 03.01.2010 / 18:40

Tags