Atualização: agora que é 2016, eu usaria o PowerShell para isso, a menos que haja um motivo realmente compatível com versões anteriores, principalmente por causa do problema de configurações regionais no uso date
. Consulte https://stackoverflow.com/a/19799236/8479 do @ npocmaka
O que é uma instrução de linha de comando do Windows que posso usar para obter a data e hora atuais em um formato que eu possa colocar em um nome de arquivo?
Quero ter um arquivo .bat que feche um diretório em um arquivo morto com a data e hora atuais como parte do nome, por exemplo Code_2008-10-14_2257.zip
,. Existe alguma maneira fácil de fazer isso, independentemente das configurações regionais da máquina?
Eu realmente não me importo com o formato da data, idealmente seria aaaa-mm-dd, mas qualquer coisa simples está bem.
Até agora eu tenho isso, o que na minha máquina me dá Tue_10_14_2008_230050_91
:
rem Get the datetime in a format that can go in a filename.
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
rem Now use the timestamp by in a new ZIP file name.
"d:\Program Files\7-Zip\7z.exe" a -r Code_%_my_datetime%.zip Code
Eu posso viver com isso, mas parece um pouco desajeitado. Idealmente, seria mais breve e teria o formato mencionado anteriormente.
Estou usando o Windows Server 2003 e o Windows XP Professional. Não quero instalar utilitários adicionais para conseguir isso (embora eu saiba que existem alguns que farão uma boa formatação de data).
[datetime]::now.tostring("yyyy-MM-dd")