sviluppo-web-qa.it

Data corrente nel nome del file

Ho programmato uno script di backup che rende il dump del database. Come posso aggiungere il timestamp della data al nome del file?

Sto parlando di Windows e CMD.

15
Bogdan Gusiev

Nel comando Prompt e file batch, è possibile utilizzare %date% e %time% per restituire rispettivamente la data e l'ora. La data funziona correttamente, ma il valore dell'ora restituito contiene due punti, che sono illegali per l'uso nei nomi di file, ma c'è un modo per rimuoverli.

Usa qualcosa come:

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

Questo produrrà un nome file come file_172215_01062009.txt

Aggiornamento: I commenti qui sotto hanno interessanti colpi di scena su questo comando e alcuni potenziali problemi che puoi evitare.

21
aalaap

Usa il %DATE% e/o %TIME variabili di ambiente, facoltativamente sostituendo i caratteri non consentiti nei nomi di file, usando %name:from=to% (%TIME::=% rimuoverebbe tutti i due punti).

 teoria "echo% date% 
 2009-06-01 
 
 teoria" echo% time% 
 16: 30: 41,46 
 
 teoria "eco% tempo :: =% 
 163052,17 
 
 teoria" eco% tempo :: =,% 
 16,30,58,68 
 
 Teoria "backup eco-% data% -% tempo :: = -%. Zip 
 Backup-2009-06-01-16 -31-18,82.Zip 
14
user1686

L'unico modo affidabile per ottenere la data appropriata indipendentemente dall'impostazione regionale è la soluzione di foxidrive @ https://stackoverflow.com/questions/11037831/filename-timestamp-in-windows-cmd-batch-script =

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause
4
Eric Ouellet

Usa la variabile% DATE% nel nome del file.

Esiste anche una variabile% TIME%, ma contiene caratteri non consentiti in un nome file.

Ecco un esempio di scrittura di una riga di testo in un nuovo file, in cui il file creato ha una data e un'ora nel suo nome.

echo "testfile" >> backup-%DATE%.txt
1
Frode Lillerud