Comunidad Underground Hispana  

Retroceder   Comunidad Underground Hispana > Programacion > Batch


Respuesta Crear Nuevo Tema
 
Compartir en twitter LinkBack Herramientas Desplegado
Antiguo 10-jul-2012, 03:17   #1
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado ERRORLEVEL en batch anidados

Hola,
Estoy intentando leer el valor ERRORLEVEL en un momento determinado cuando llamo a un batch desde otro batch (creo que ese es el problema...)
Si ejecuto el siguiente código busca.bat:
Código:
set CONFIGINI=192.168.1.1 192.168.1.2
for /F "tokens=1,2 usebackq" %%i IN ('%CONFIGINI%') DO (
    set IP1=%%i
    set IP2=%%j
)
ipconfig /all >c:\ip.txt
findstr "IP" C:\ip.txt | findstr "%IP1%" C:\ip.txt
echo ERRORLEVEL:%ERRORLEVEL%
if "%ERRORLEVEL%"=="0" (
    echo DUAL_SERVERS=%IP2%>>"C:\config.ini"
    echo [%time%] DUAL_SERVERS=%IP2%
)
findstr "IP" C:\ip.txt | findstr "%IP2%" C:\ip.txt
echo ERRORLEVEL:%ERRORLEVEL%
if "%ERRORLEVEL%"=="0" (
    echo DUAL_SERVERS=%IP1%>>"C:\config.ini"
)
  
LLamando directamente a busca.bat funciona correctamente
En cambio, si tengo otro batch, argh.bat con el siguiente código:
Código:
busca.bat
  
Cuando ejecuto argh.bat, ERRORLEVEL SIEMPRE es igual a 0

¿cómo funciona el anidamiento de ERRORLEVEL entre archivos .bat?
He probado con enabledelayedexpansion, con setlocal, con %%ERRORLEVEL%% !ERRORLEVEL! siempre tengo el mismo resultado

Gracias!
Reister está desconectado   Responder Citando
Antiguo 10-jul-2012, 08:47   #2
Novato
 
Fecha de Ingreso: febrero-2010
Amigos 2
Mensajes: 39
Gracias: 4
Agradecido 21 veces en 18 mensajes.
Predeterminado Respuesta: ERRORLEVEL en batch anidados

Si te he entendido bien, lo que tú haces es lo siguiente:

Código:
busca.bat &:: llamas al .bat
echo %errorlevel% &:: intentas mostrar el errorlevel que obtuviste en busca.bat
  
Si es así, te comento que cuando tú llamas a un fichero por lotes, el errorlevel por defecto que se retornará es 0, a no ser que se especifique otro valor de retorno. ¿Cómo se especifica?

Añade al final de busca.bat lo siguiente

Código:
exit /b %errorlevel%
  
Después del comando exit, puedes especificar el errorlevel que retornará. Si le haces retornar el errorlevel que te salió con "findstr", ya habrás conectado los dos ficheros por lotes.

Suerte
__________________

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

Binary_Death está desconectado   Responder Citando
Antiguo 10-jul-2012, 09:12   #3
Recien llegado
 
Fecha de Ingreso: junio-2012
Amigos 0
Mensajes: 7
Gracias: 1
Agradecido 0 veces en 0 mensajes.
Predeterminado Respuesta: ERRORLEVEL en batch anidados

Bueno, en realidad me da igual que argh.bat sepa el errorlevel.
Lo que en realidad quiero hacer es que si encuentra esa cadena haga una cosa u otra. Ahora mismo como errorlevel siempre es 0, no puedo saber si encuentra la cadena o no...
Basicamente:
Ejecuto busca.bat y escribo correctamente el config.ini
Ejecuto argh.bat (que lo que hace es llamar a busca.bat) entonces se escribe el config.ini incorrectamente
Reister está desconectado   Responder Citando
Antiguo 14-jul-2012, 17:31   #4
kj
Moderador
 
Fecha de Ingreso: noviembre-2006
Amigos 4
Mensajes: 2.636
Gracias: 3
Agradecido 295 veces en 210 mensajes.
Predeterminado Respuesta: ERRORLEVEL en batch anidados

Yo no usaría errorlevel:

[Solo usuarios registrados pueden ver los links. REGISTRARSE]



eso es lo que suelo usar yo en estos casos ^^.

kj
__________________

[Solo usuarios registrados pueden ver los links. REGISTRARSE]

kj está desconectado   Responder Citando
Respuesta

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado



Temas Similares
Tema Autor Foro Respuestas Último mensaje
generador de virus batch by condor v2.2 apdv2.12 Batch 10 30-oct-2012 11:55
Repara BlackBerry Con JL_CMDER = BAt Bater Batch 1 08-ene-2012 09:10
Tutorial Programación Batch - completo - GUN$ Batch 5 04-dic-2011 17:42
Batch Logo Maker v2.0 HACK_ZER0 Batch 6 17-oct-2011 20:58
[bat] Anti-Autorun.inf batch vaccine v1.2 kj Batch 9 08-oct-2011 19:26



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.0