Resultados 1 al 3 de 3

Problema con bat en MS DOS

  1. #1 Problema con bat en MS DOS 
    Iniciado
    Fecha de ingreso
    May 2010
    Mensajes
    49
    Descargas
    0
    Uploads
    0
    Hola a todos.

    Estoy intentando hacer un pequeño programa en el simbolo del sistema consistente en que, al darle a un botón en el escritorio, el ordenador haga ping a todos los equipos de la red en la que estoy para saber los equipos conectados a ella. Algo así como un escaneador de mi red local.

    Bueno la orden es esta:

    @for /L %i IN (1,1,255) do ping -w 50 -n 1 192.168.0.%i | find "TTL=" && @ECHO 192.168.0.%i >>logips

    el caso es que si escribo directamente en el simbolo del sistema funciona y, efectivamente, hace un escaneo de toda la red.

    Quise hacer un bat (usando el comando edit de ms dos) para así ponerlo como un botón en el escritorio para que al clickear sobre él comience a escanear...pero no hay manera.
    He probado de diferentes maneras para escribir el bat, desde escribir el texto anterior sin más hasta hacer un pequeño programita de ms dos, así:

    @echo off
    title ScanRed escaneador de red
    echo comenzamos
    @for /L %i IN (1,1,255) do
    ping -w 50 -n 1 192.168.0.%i | find "TTL=" && @ECHO 192.168.0.%i >>logips
    echo escaneo terminado
    pause
    exit

    pero nada. Siempre pone "no se esperaba i en este momento". Y ahí me las den todas

    Aparte de este mensaje (que tengo que verlo en el simbolo del sistema porque en el botón del escritorio no se ve nada ya que la ventana se abre y se cierra en una décima de segundo) no hace nada más (en cambio si lo escribo directamente, no en forma de bat, sí funciona).

    ¿Qué os parece?

    sds
     

  2. #2  
    Iniciado
    Fecha de ingreso
    May 2010
    Mensajes
    49
    Descargas
    0
    Uploads
    0
    Hola.

    Ya solucioné el problema.
    Para quien le pueda interesar. Resulta que al hacer un bat hay que poner dos veces % además después del comando do hay que poner paréntesis.
    Bueno al final quedó así:

    @echo off
    echo ScanRed escaneador de red
    echo
    echo comenzamos
    @FOR /L %%i in (1,1,255) do (ping -w 50 -n 1 192.168.0.%%i | find "TTL=" && @ECHO 192.168.0.%%i >>logips)
    echo
    echo escaneo terminado
    pause
    exit

    Y ¡funciona!

    Un saludo.
     

  3. #3  
    Co-Admin HackHispano.com Avatar de clarinetista
    Fecha de ingreso
    Jan 2004
    Ubicación
    HackHispano/SM
    Mensajes
    7.773
    Descargas
    31
    Uploads
    8
    Gracias por postear la solución. Cierro el hilo
     

Marcadores

Marcadores