Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SuperDraco en 21 Enero 2011, 13:20 pm



Título: (Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: SuperDraco en 21 Enero 2011, 13:20 pm
hola, les copio aqui una cosa que posteé en otro foro y aun nadie me contesta, ando desesperado :(   :



tengo un problema con un batch que estaba haciendo, el problema llega en la sección ":COMPROBAR" resulta que aunque "javaw.exe" lo reconozca el tasklist o no lo reconozca, el errorlevel que me da siempre es "0", así que no se que debo hacer por culpa de eso se me crea un bucle de ":COMPROBAR" a ":AVISAR" y nunca pasa a ":INSTALAR", acabo de empezar hace unos dias a usar la variable errorlevel, y me ha funcionado bien pero es la primera vez que lo uso refiriendome a los datos que me da un proceso en particular como el tasklist y seguro que lo hago mal, y nisikiera se que significa el parametro "LEQ" y la verdad en internet solo hay informacion sobre la utilidad errorlevel.exe, no sobre la variable de Windows (7), asi q si alguien me pudiera explicar un poco más como poder usarla mejor, sus parametros, o resolverme este problema estaria muy agradecido.

saludos!


Código:
:CENTRAR
if exist c:\windows\system32\nircmd.exe nircmd win center ititle "PiToLoKo Installer"


:COMPROBAR
tasklist /FI "IMAGENAME eq javaw.exe"
IF %ERRORLEVEL% LEQ 0 goto :AVISAR
IF NOT %ERRORLEVEL% LEQ 0 goto :INSTALAR


:AVISAR
cls & title AVISO!!! & color c & echo+ & echo+ Cierra JDownloader antes de instalar este plugin . . . & echo+ & echo+ & pause & title PiToLoKo Installer & goto :Comprobar


:INSTALAR
xcopy /E /Y jd "C:\Program Files (x86)\JDownloader\" >nul
IF NOT %ERRORLEVEL% LEQ 0 goto :MAL


:BIEN
cls & echo+ & echo+ "Plugin Anti reCaptcha ST" se ha instalado correctamente   :) & Ping -n 4 localhost >nul & cls
color 2 & echo+ & echo+ INSTALACION FINALIZADA CON EXITO !!  & Ping -n 4 localhost >nul
exit


:MAL
Mode con cols=66 lines=6 & cls & color c & echo+ & echo+              INSTALACION FALLIDA :( & echo+ & echo+  ( Ha ocurrido algun tipo de error durante la instalacion... ) & pause>nul
exit
  

bueno ya lo he solucionado de milagro solo añadiendo un parametro

Código:

Código:
:COMPROBAR
tasklist /FI "IMAGENAME eq javaw.exe" | findstr PID >NUL
  

pero me gustaria q alguien me lo explicase mejor las dudas q he expuesto gracias




EDITO: ahora me vuelve a pasar lo mismo con otro batch, ya no se q hacer...


Código:

Código:
regedit /s "Eliminar archivos indeseables.reg"
echo+ %errorlevel% & pause
IF NOT %ERRORLEVEL% LEQ 0 goto :MAL
 

el comando del regedit siempre me da un errorlevel "0" encuentre o no encuentre el archivo de registro...psssss... :/

se supone q me deberia dar un errorlevel 1 o 9099, en fin................


Título: Re: [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: xassiz~ en 21 Enero 2011, 14:36 pm
Es que el comando se ejecutó correcamente. Tienes que buscar la salida con findstr (hablo del primer ejemplo), o find o algo de ese estilo.

Con las pipes (|) le pasamos la salida del primer comando al segundo.


Lo del regedit, hazlo con el comando REG.


Título: Re: [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: SuperDraco en 23 Enero 2011, 03:58 am
Es que el comando se ejecutó correcamente. Tienes que buscar la salida con findstr (hablo del primer ejemplo), o fin o algo de ese estilo.

Con las pipes (|) le pasamos la salida del primer comando al segundo.


Lo del regedit, hazlo con el comando REG.


Gracias aqui se aprenden cosas cuando menos te loe speras, nunca me habia fijado en esos comandos, las "pipes" parecen muy útiles y el comando "fin" kizás kerias decir "find", porke "fin" no existe en mi consola xD, pero mira estoy intentandolo así y no me funciona a ver si tu puedes ayudarme, este comando me da el siguiente error cuando lo ejecuto en la consola:

Código:
xcopy /E /Y "MP3 Direct Cut" "C:\Program Files (x86)\MP3 Direct Cut\"
se copian 2 archivos, y luego dice: Infraccion al compartir

entonces yo hago esto en un batch:
Código:
xcopy /E /Y "MP3 Direct Cut" "C:\Program Files (x86)\MP3 Direct Cut\" | findstr compartir >nul >error.txt
IF NOT %ERRORLEVEL% LEQ 0 goto :MAL

:MAL
type error.txt

pero en error.txt no se copia la frase "infraccion al compartir", solo los 2 archivos copiados y no se porke!!

osea, en el cmd me sale así:
Código:
MP3 Direct Cut\MP3 Direct Cut.ico
MP3 Direct Cut\MP3DirectCut.exe
Infracción al compartir

y en error.txt así:
Código:
MP3 Direct Cut\MP3 Direct Cut.ico
MP3 Direct Cut\MP3DirectCut.exe




EDITO: lo que quiero es poder copiar el error provocado para luego mostrarlo en la ventana :S.

Más o menos así, para que me entiendan...

(http://img843.imageshack.us/img843/9128/prtscrcapturez.jpg)


Título: Re: [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: SuperDraco en 23 Enero 2011, 06:09 am
mMm por fin he encontrado los parámetros del errorlevel xD lo comparto por si a alguien le interesa...

Código:
   EQU - equal
    NEQ - not equal
    LSS - less than
    LEQ - less than or equal
    GTR - greater than
    GEQ - greater than or equal


EDITO MUAHAHAHAAHA  :-X ya resolví mi problma... yo solo xD  :laugh:

era tan simple como:

Código:
copy /Y "que cosa que cosa es???" >nul 2>>error.txt
type error.txt


Título: Re: [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: leogtz en 23 Enero 2011, 10:19 am
Busca sobre ejecucion condicional, creo que yo escribi un articulo sobre eso.


Título: Re: [BATCH] Ayuda con este batch! (%ERRORLEVEL%)
Publicado por: SuperDraco en 23 Enero 2011, 15:23 pm
ok dalo por exo tiene q estar bien, ya me leí hace tiempo un artículo tuyo sobre los comando del nircmd xD uf, eso si que fue largo.

saludos!