Data atual no nome do arquivo

8

Eu agendei o script de backup que faz o despejo do banco de dados. Como posso adicionar o carimbo de data e hora ao nome do arquivo?

Estou falando sobre o Windows e o CMD.

    
por Bogdan Gusiev 01.06.2009 / 13:38

3 respostas

18

No prompt de comando e nos arquivos em lote, você pode usar %date% e %time% para retornar a data e a hora, respectivamente. A data funciona bem, mas o valor de tempo retornado contém dois-pontos, que são ilegais para uso em nomes de arquivos, mas existe uma maneira de removê-los.

Use algo como:

COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt

Isso produzirá um nome de arquivo como file_172215_01062009.txt

Atualização: Os comentários abaixo têm reviravoltas interessantes neste comando, bem como alguns problemas potenciais que você pode evitar.

    
por 01.06.2009 / 13:53
13

Use as variáveis de ambiente %DATE% e / ou %TIME , opcionalmente substituindo os caracteres que não são permitidos em nomes de arquivos, usando %name:from=to% ( %TIME::=% removeria todos os dois-pontos).

theory » echo %date%
2009-06-01

theory » echo %time%
16:30:41,46

theory » echo %time::=%
163052,17

theory » echo %time::=,%
16,30,58,68

theory » echo backup-%date%-%time::=-%.zip
backup-2009-06-01-16-31-18,82.zip
    
por 01.06.2009 / 15:32
1

Use a variável% DATE% no nome do arquivo.

Também existe uma variável% TIME%, mas contém caracteres não permitidos em um nome de arquivo.

Aqui está um exemplo de como escrever uma linha de texto em um novo arquivo, onde o arquivo criado tem uma data e hora em seu nome.

echo "testfile" >> backup-%DATE%.txt
    
por 01.06.2009 / 13:49