[Batch] Varias preguntillas...

Iniciado por ypsilon, 29 Agosto 2011, 19:24 PM

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

ypsilon

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:

leogtz

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

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

ypsilon

#2
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


leogtz

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
)


Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com