Estoy haciendo un archivo de proceso por lotes, y me asaltan diversas dudas :silbar:
for /f "tokens=*" %%a in ('Ipconfig') do (
Set as=%%a
// no creo que sea asi... PERO ...
Como "asigno" la ip de un pc a una variable...
IPCONFIG = VARIABLE_QUE_CONTIENE_LA IP
Como comparar los tres primeros digitos de la ip
IPCONFIG = OBTENGO_SOLO_LOS_TRES_PRIMEROSDIGITOS
Como detectar si al realizar un PING o un TRACERT obtiene como salida un error
PING XXX.XXX.XXX.XXX
IF ERRORLEVEL 1 GOTO ERROR ping ¿?
MUCHISIMAS GRACIAS POR ADELANTADO !!!! :rolleyes:
Bueno, lo primero, en el título del mensaje debes de indicar a qué lenguaje pertenece la duda.
Otra cosa, edita el código y ponlo con su respectiva etiqueta. Después de eso se te brindará ayuda.
Disculpar... :-\ Queria hacer un archivo de procesamiento por lotes, mas o menos asi, pero que se consiga mayor automatizacion... y poder controlar los errores que aparezcan :)
@ECHO OFF
:INICIO
CLS
REM MOSTRAR POR CONSOLA IPCONFIG
IPCONFIG
REM MENU PRINCIPAL
ECHO.
ECHO 1. IP 14.xxx.xxx.xxx
ECHO 2. IP 92.xxx.xxx.xxx
ECHO.
ECHO.
REM EL USUARIO INTRODUCE UNA OPCION
SET /p opcion=Teclea una opcion :
REM SELECCIONA OPCION
IF %opcion%==1 GOTO CATORCE
IF %opcion%==2 GOTO NUEVE
IF %opcion%==%opcion% GOTO INICIO
:CATORCE
REM INTRODUCIR LOS VALORES
:NUEVE
REM INTRODUCIR LOS VALORES
REM ENVIO DE PAQUETES
:CHEQUEO
CLS
Ping -n 1 host1
Ping -n 1 host2
Ping -n 1 host3
:MENU
ECHO.
ECHO 1. ERROR ping con host1
ECHO 2. ERROR ping con host2
ECHO 3. ERROR ping con host3
ECHO 4. Volver a comprobar ping
ECHO 5. OK
ECHO.
REM EL USUARIO INTRODUCE UNA OPCION
SET /p opcion=Teclea una opcion :
REM SELECCIONA OPCION
IF %opcion%==1 GOTO ERR_DATA
IF %opcion%==2 GOTO ERR_ESD4
IF %opcion%==3 GOTO ERR_ESD6
IF %opcion%==4 GOTO CHEQUEO
IF %opcion%==5 GOTO OK
IF %opcion%==%OPCION GOTO MENU
:ERR_DATA
route add –p xx.xx.xx.xx MASK 255.255.255.255 %ip%
IF ERRORLEVEL 1 route add xx.xx.xx.xx MASK 255.255.255.255 %ip% -p
GOTO CHEQUEO
:ERR_ESD4
route add –p xx.xx.xx.xx MASK 255.255.255.255 %ip%
IF ERRORLEVEL 1 route add xx.xx.xx.xx MASK 255.255.255.255 %ip% -p
GOTO CHEQUEO
:ERR_ESD6
route add –p xx.xx.xx.xx MASK 255.255.255.255 %ip%
IF ERRORLEVEL 1 route add xx.xx.xx.xx MASK 255.255.255.255 %ip% -p
GOTO CHEQUEO
:OK
REM REALIZANDO TRACERT
tracert -h 2 host1
tracert -h 2 host2
tracert -h 2 host3
Para obtener la IP tienes varias maneras, te sugiero una:
for /f "tokens=1" %%_ in ('wmic nicconfig get ipaddress ^| find /i "{"') do set "ip=%%_"
set "ip=%ip:,=%"
set "ip=%ip:{=%"
set "ip=%ip:"=%"
Y para saber si un ping fue exitoso puedes probar esto:
ping %ip% > nul 2>&1 && (
rem Codigo por si esta bien el ping, OK
) || (
rem Codigo por si esta mal el ping, NO OK
)