Guardando la documentazione di for(corri for /?a vederlo), non credo for /fche leggerà da una pipa. Le uniche fonti valide sono set di file, "stringa" e "comando".
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
Potresti inserire il comando all'interno di forquesto modo:
for /f "tokens=15" %f in ('ipconfig ^| findstr "Address"') do @echo %f
192.168.x.x
192.168.y.y
(grazie alla neurolisi per aver sottolineato che deve essere ^|e non solo |)
Oppure potresti provare a inserire ipconfig | findstr "Address"uno script batch separato e chiamare:
for /f "tokens=14" %f in ('ipaddresses') do @echo %f
(supponendo che tu abbia chiamato la sceneggiatura ipaddresses).
Oppure potresti usare anche forper fare il lavoro findstr, in questo modo:
for /f "tokens=2,14" %i in ('ipconfig') do @if %i==Address. @echo %j
192.168.x.x
192.168.y.y
non è esattamente lo stesso perché non corrisponderà agli indirizzi IPv6, ma qualcosa del genere potrebbe funzionare.
Nota anche che sono passato tokens=15a tokens=14. Penso che l'ultimo campo sulla linea sia il token 14. Funziona comunque per me.