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