(Soclucionado) [BATCH] Ayuda con este batch! (%ERRORLEVEL%)

Iniciado por SuperDraco, 21 Enero 2011, 13:20 PM

0 Miembros y 2 Visitantes están viendo este tema.

SuperDraco

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!


: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:

: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:

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................
No he vuelto, solo estoy de paso.

xassiz~

#1
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.

SuperDraco

#2
Cita de: pablomi 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 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:

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:

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í:
MP3 Direct Cut\MP3 Direct Cut.ico
MP3 Direct Cut\MP3DirectCut.exe
Infracción al compartir


y en error.txt así:
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...


No he vuelto, solo estoy de paso.

SuperDraco

#3
mMm por fin he encontrado los parámetros del errorlevel xD lo comparto por si a alguien le interesa...

   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:

copy /Y "que cosa que cosa es???" >nul 2>>error.txt
type error.txt
No he vuelto, solo estoy de paso.

leogtz

Busca sobre ejecucion condicional, creo que yo escribi un articulo sobre eso.
Código (perl) [Seleccionar]

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

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

SuperDraco

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!
No he vuelto, solo estoy de paso.