varias dudas con código batch y como hacer para saber la ip

Iniciado por r7pyrred, 23 Noviembre 2012, 00:35 AM

0 Miembros y 1 Visitante están viendo este tema.

r7pyrred

for /f "tokens=*" %%_ in ('findstr /r ^H.*$ temp.txt') do (
set query[!contador!]=%%_

echo No. de valores: !contador!


for /l %%_ in (0,1,!contador!) do (
ping -n 1 !query[%%_]! > nul 2>&1 && (

Alguien explica con detalle  ese bucle for¿? ¿que es ^H.* ?
¿que es esa asigancio tan rara query y por que va con [] y con exclamaciones y %%_
y como es que en el otro bucle for la variable es %%_ y en ping aparece entrE[]
y como es que la salida va a nul y luego pone 2>&1 y dos % QUE RARO respondan
Y también saber como almacenar de un texto (ipconfig>>txt.txt)la ip local LAN
y almacenarla en una var o en texto para usarla respondan ,gracias

Eleкtro

^H.*$ es una "Regular expresion" (o RegEx). http://es.wikipedia.org/wiki/Regex
Es bastante fácil, busca cualquier línea cuya PRIMERA letra séa "H" seguida de cualquier serie de caracteres.

En ese code entra en juego variables expandidas y asignación de nombres de variables dinámicas.

query[X] es el nombre que el autor del código ha querido darle a la variable, podría haberle asignado cualquier otro nombre, con o sin [], eso no tiene importancia, y X es el número de la variable !count!.

En el código de tu ejemplo supongo que también falta un buen trozo en el primer FOR, porque no tiene sentido crear esas variables si si la variable !count! no cambia de valor, por ahí debe haber un "Set count+=1" que no aparece... Asumiendo eso:
Por cada coincidencia que encuentra FINDSTR, aumentaría la variable !COUNT! +1 número, y se crearían variables con este nombre:
query[1]
query[2]
query[3]

etc...

a cada variable se le asigna como valor la palabra encontrada.

Y como funciona un FOR /F y FOR /L lo puedes buscar tu mismo. http://ss64.com/nt/for.html

saludos








r7pyrred

 Gracias sirvió y falta
Y también saber como almacenar de un texto (ipconfig>>txt.txt)la ip local LAN
y almacenarla en una var o en texto para usarla respondan ,gracias