Aggiornamento: ora che è il 2016 utilizzerei PowerShell per questo a meno che non ci sia un motivo davvero convincente e compatibile con le versioni precedenti, in particolare a causa del problema delle impostazioni regionali con l'utilizzo date
. Vedi https://stackoverflow.com/a/19799236/8479 di @npocmaka
Che cos'è una o più istruzioni della riga di comando di Windows che posso usare per ottenere il datetime corrente in un formato che posso inserire in un nome file?
Voglio avere un file .bat che comprime una directory in un archivio con la data e l'ora correnti come parte del nome, ad esempio Code_2008-10-14_2257.zip
. Esiste un modo semplice per farlo, indipendentemente dalle impostazioni regionali della macchina?
Non mi dispiace davvero per il formato della data, idealmente sarebbe yyyy-mm-gg, ma qualsiasi cosa semplice va bene.
Finora ho questo, che sulla mia macchina mi 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
Posso conviverci, ma sembra un po 'goffo. Idealmente sarebbe più breve e avrebbe il formato menzionato in precedenza.
Sto usando Windows Server 2003 e Windows XP Professional. Non voglio installare utilità aggiuntive per raggiungere questo obiettivo (anche se mi rendo conto che ci sono alcuni che faranno una buona formattazione della data).
[datetime]::now.tostring("yyyy-MM-dd")