blog}

Creare una cartella il cui nome dipende dalla data e dall’ora attuale (creating date-time based folder name)

Supponiamo di voler creare una cartella via cmd o batch file il cui nome contiene la data e l’ora attuale secondo lo schema:

backup_annomesegiorno_oraminutisecondi

ad esempio se oggi fosse il 04/05/2016 e fossero le ore 10.31.20,02 allora:

backup_20160504_1031

Utilizziamo la manipolazione DOS di stringhe:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%

in cui  ad esempio date:~0,2 prende i primi due caratteri a partire dalla posizione 0 della stringa restituita dal comanda DOS date (date restituisce il valore 04/05/2016).

Faccio notare che sarebbe possibile anche iniziare dall’ultimo carattere della stringa “date”; ad esempio il comando:

date:~-7,2 

restituisce il valore 05 (in questo caso la posizione 0 è del numero 6).

Procedendo allo stesso modo per il tempo si ha:

Set tempo=%time:~0,2%%time:~3,2%

Unendo ora tutti i comandi si ottiene:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%
Set tempo=%time:~0,2%%time:~3,2%
mkdir backup_data%%tempo%

Nel caso in cui si voglia l’indicazione della data nella seguente forma “04052016” è allora più conveniente utilizzare la sostituzione di un carattere in una stringa secondo il seguente esempio:

outstring = instring:chr_old= chr_new

in cui instring è la stringa originale, outstring è il risultato della sostituzione, chr_old è il carattere che si vuole sostituire e chr_new è il carattere sostitutivo.

Nel nostro caso chr_old = / e chr_new è la stringa nulla, per cui:

Set data=%date:/=%

Per un guida più esaustiva sulla manipolazione DOS di stringhe rimando al seguente link:

http://www.dostips.com/DtTipsStringManipulation.php

ti è piaciuto l'articolo? condividi

sharing my ICT knowledge and expertise through the documentation of my experiences

Eros Sormani

Mi occupo di progettazione e sviluppo di soluzioni software e di creazione, implementazione e mantenimento di infrastrutture digitali

Altri Articoli del BLOG

Torna su