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

È stato utile?

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

findstr restituisce l'intera riga non solo la stringa dovresti tagliare il risultato, per la ricerca stessa

[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]*
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top