Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: ypsilon en 29 Agosto 2011, 19:24 PM

Título: [Batch] Varias preguntillas...
Publicado por: ypsilon en 29 Agosto 2011, 19:24 PM
Estoy haciendo un archivo de proceso por lotes, y me asaltan diversas dudas :silbar:

Código (dos) [Seleccionar]
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:
Título: Re: Varias preguntillas...
Publicado por: leogtz en 30 Agosto 2011, 02:00 AM
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.
Título: Re: Varias preguntillas...
Publicado por: ypsilon en 30 Agosto 2011, 20:47 PM
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 :)

Código (dos) [Seleccionar]
@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

Título: Re: [Batch] Varias preguntillas...
Publicado por: leogtz en 31 Agosto 2011, 01:15 AM
Para obtener la IP tienes varias maneras, te sugiero una:

Código (dos) [Seleccionar]
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:


Código (dos) [Seleccionar]
ping %ip% > nul 2>&1 && (
rem Codigo por si esta bien el ping, OK
) || (
rem Codigo por si esta mal el ping, NO OK
)