Guardando la documentazione di for
(corri for /?
a vederlo), non credo for /f
che 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 for
questo 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 for
per 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=15
a tokens=14
. Penso che l'ultimo campo sulla linea sia il token 14. Funziona comunque per me.