Nel corso degli anni Microsoft ha migliorato questa soluzione, o forse la ho scovata io troppo tardi, ma utilizzando il comando set si possono ottenere degli ottimi risultati.
Ad esempio volendo valorizzare i caratteri 11, 12, 13, 14 e 15 di una data stringa potremmo utilizzare un costrutto del genere:
C:\>set str=1234567890ABCDEFGHILMNOPQRSTUVZ
C:\>set str2= %str:~10,5%
C:\>echo %str2%
C:\>set str2= %str:~10,5%
C:\>echo %str2%
ABCDE
Avrebbe funzionato anche se al posto di set str2 ... avessimo usato direttamente il comando echo
Utilizzando questa forma, invece, vedremmo solo gli ultimi 10 caratteri della nostra stringa:
C:\>echo %str:~-10%
NOPQRSTUVZ
Così toglieremo i primi 10 caratteri, vedendoli dalla 11 in poi
C:\>echo %str:~10%
ABCDEFGHILMNOPQRSTUVZ
ABCDEFGHILMNOPQRSTUVZ
Così saremmo in grado di escludere gli ultimi 21 caratteri
C:\>echo %str:~0,-21%
1234567890
1234567890
Naturalmente così potremmo visualizza solo i primi 10 caratteri
C:\>echo %str:~0,10%
1234567890
Il gioco è chiaro, con tale sistema si riesce a stare dietro hai più grossi "creatoru" di stringhe strane, si possono normalizzare le date e via dicendo.
Sarò buono, di seguito un esempio di normalizzazione della data di sistema:
C:\>date /t
19/07/2012
C:\>echo %date:~-4%%date:~3,2%%date:~0,2%
20120719
20120719
Altro trucchetto riguardo la tilde, per scriverla il modo più veloce è tenere premuto il atsto ALT e scrivere 126 con il tastierino numerico, nel mio caso con un portatile e la tastiera compatta per evitare di fare lunghi e difficili contorsionismi il copia e incolla è stato fondamentale.
Nessun commento:
Posta un commento