file batch analizzando e restituire il risultato
-
12-12-2019 - |
Domanda
Devo usare un file batch e analizzare uno dei parametri.Il risultato dovrebbe andare su uno dei comandi nel file batch.
Quindi uno dei parametri per il file batch è come questo:
.
Lorem [ABC-1234] ipsum
Uno dei comandi nel file batch ha bisogno del valore ABC-1234 dal parametro sopra.Un utilizzo di regexp sarebbe molto bello, il Findstr lo trova, ma restituisce il suo input se il modello trovato.
.
echo Lorem [ABC-1234] ipsum | findstr /R "\[[A-Z]*\-[0-9]*\]"
Questo ritorna:
.
echo Lorem [ABC-1234] ipsum
Ma mi piacerebbe ottenere il
.
ABC-1234
Soluzione
Supponendo che non ci siano altri caratteri [
o ]
.
for /f "eol=[ tokens=2 delims=[]" %%A in ("Lorem [ABC-1234] ipsum") do echo %%A
. Altri suggerimenti
.
[A-Z]*-[0-9]*
sarebbe abbastanza o meglio
([A-Z]*-[0-9]*)
.
Funziona già come sopra:
echo Lorem [ABC-1234] ipsum | findstr /R [A-Z]*-[0-9]*
.