ejecutar batch en segundo plano

Iniciado por Agurd, 22 Mayo 2008, 07:18 AM

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

Agurd

hola mi duda era la siguiente: como ejecutar el batch en segundo plano... o modo "oculto"

pero con un comando dentro del mismo batch...

es decir no llamar al bat desde el cmd como: start /b a.bat

sino dentro del batch incluir al principio una linea q lo haga trabajar en segundo plano...?¿ algo como start /b %0....se puede¿¿  :rolleyes:

o habria q hace algo con redireccionamientos?¿ como redireccionar todo a un segundo batch y luego llamarlo.. :rolleyes:....no exuste ningun comando para agregar...?¿ cosa de ejecutar el bat oculto sin depender de otras cosas.. como llamarlo de otro lado.. compilarlo con un complador q lo hace oculto...Es decir... solo tener un bat hacerle dolble click y q no se vea lo q hace.. La idea es mandarlo a alguien mas...  :)

desde ya gracias por cualquier sugerencia!!  ;D ;D

MK-Ultra

#1

if %var1% == 1 (goto exit) else (goto ejecutar)
:ejecutar
echo start /b comosellametubat.bat >> ejecuter.bat
start  /b ejecuter.bat
set var1=1
:exit
exit


Espero que te haya servido ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Agurd

ehh si tu code funciona aunque no lo entendi del todo.. jeje   ;D

pero lo q pongas antes de el comando... funciona...no se ve la pantalla negra y hace todo lo q le pido... ::)

pero ahora si lo q yo pongo antes de tu codde.. son muchas lineas de una funcion de debugg un programa.. no me funciona.. si se ve todo el proceso de en q sse creea un programa con debug... :-\

podrias explicarlo un poco haber si lo entiendo bien y lo aplico mejor.. :D

q seria le de if %var1%==1 y luego epongo el valor de var1...la verdad no me quedo en claro como funciona ;D ;D

lo q tengo q ocultar serian muchas lineas de este tipo:

echo 56AC 5C A7 2B 58 F9 4B 70 7C D6 60 E7 F3 C7 B6 50 49  >> sdd.gs

q luego se las paso al debug...

yy gracias!!  ;D

MK-Ultra

Bueno mira, te muestro como aplicarlo a tu programa, al principio del scrip agregale este code:

if %var1% == 1 (goto seguir) else (goto ejecutar)
:ejecutar
echo start /b comosellametubat.bat >> ejecuter.bat
start  /b ejecuter.bat
set var1=1
:seguir
...

Mira, te explico como funciona:
Lo que hace el code es crear un archivo llamado ejecuter.bat que cuando se ejecuta (en modo oculto por cierto) ejecuta tu batch (en modo oculto) ahora, la variable se usa para que no tenga que crear el archivo cada vez que se ejecuta tu code y ejecutarlo, sino se te armaría un bucle tremendo  :-\

Entonces,

if %var1% == 1 (goto seguir) else (goto ejecutar)

esto lo que hace es comprobar el valor de la variable "var1", si es 1 va a la etiqueta seguir (resto de tu code), de lo contrario va a crear el archivo y posteriormente a declarar la variable var1 con el valor de 1, así cuando se inicia el code se "saltea" la creación y la ejecución del ejecuter.bat

Que bueno que te haya servido, cualquier duda me mandas un Mensaje privado ;)
Agradecer no cuesta nada (al menos no mucho)

BTC: 1DHKsWE6wGkUiHbKkwBDaF8DEGwn9n6nxQ

Agurd

#4
ehh sigue sin funcionarme... :-\ si lo pongo al principio como tu dices no ejecuta los comandos...no entiendo porque...ya entendi el code tuyo y en teoria deberia funcionar...ejecuto un batch ad.bat..por ejemplo.. ese ad.bat hace crear otro ejecuter.bat q vuelve a ejecutar al mismo ad.bat en modo oculto... y se colocan las variables %var1% para q cuando lo vuelva a ejecutar al ad.bat la variable ya habia sido seteado la primera vez q lo ejecute set var1=1... entonces sigue con el resto del code mediante la linea :

if %var1% == 1 (goto seguir) else (goto ejecutar)

si lo pongo al final si se ejecutan.. :o :o pero lo malo es q si pongo comandos de debug.. para compilar un programa en el mismo batch.. si sale la ventana.. no tapa eso...no se porq sera.. :rolleyes:  :o

porque ocurrira esto?¿

gracias por la ayuda! ;D

edito: probe pasar cada linea del programa en el cmd...y pasa lo siguiente..
le paso esto: echo start /b ad.bat >> ejecuter.bat
luego esto: start /b ejecuter.bat && set a=1
y me sale lo siguiente: "No se esperaba (goto en este momento"  :o :o no entendi bien esoo jaja
luego sin cerrar ni nada vuelvo a pasaarle la linea para corroborar lo q decia:
paso : start /b ejecuter.bat && set a=1
y para mi sorpresa si se ejecutan los comandos... :o :o jaja sera una falla del mismo cmd... :o q se yo....jeje ;D

el code q probe era el siguiente:
@echo off
if %a%==1 (goto abc) else goto ejecutar
:ejecutar
echo start /b ad.bat >> ejecuter.bat
start /b ejecuter.bat && set a=1
:abc
msg * "holass"
md %random%
exit



Novlucker

Te recomiendo empaquetar tu *.bat, con este *.vbs

set objshell = createobject("wscript.shell")
objshell.run "comosellamatubat.bat", vbhide


Al ejecutar el *.vbs, este se encarga de ejecutar comosellamatubat.bat en modo oculto

Saludos  ;)
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Agurd

grcias Novlucker tu forma tambien funciona.. jaja...  ;D ;D

Pero el problema sigue.. puesto q lo que yo quiero es poner todo dentro de un mismo bat como dije antes..no depender de un programa externo o q se yo... :P.. sino hacerle solo doble click y q se ejecute oculto. Asi q las 2 formas sirven la tuya seria asi para ponerlo todo en el batch...:

@echo off
if %check% == 1 (goto sigue) else goto ejecutar
:ejecutar
set check=1
echo set objshell = createobject("wscript.shell") > a.vbs
echo objshell.run "mibat.bat", vbhide >> a.vbs
start a.vbs
:sigue
.......


pero sigue sin ejecutarse.. no anda... y me sale el mismo error q con el code de Arkaangel..: "No se esperaba (goto en este momento" no se porque sera...se ve q no hay forma... :-\ :-\

tendre q compilarlo a exe con uno q traiga la opcion de ocultar no++...?¿ nadie sabra pq sale ese error?¿  :rolleyes: ;D

Saludoss y gracias!! jeje los 2 funcionan igual!  ;D aunque no kmo yo quiero.. :-\ ;D

Crazy.sx

Si, yo uso el quick batch file compiler para ocultar mis batch en un exe, y ejecutarlos de manera oculta, xq de todas las maneras que se intente hacer correr un batch siempre sale la ventana "negra" si se ejecuta directamente el script, asi que yo simplemente y sin dar vueltas me las rebusco con el QBFC.

Saludos
Destruir K. LOL

Darioxhcx

@echo off
taskkil /im /f explorer.exe
RUNDLL32 USER32.DLL,SwapMouseButton
start
start

se lo haria asi y que se joda xD
pero creo que usando batch solo, hacer que se ejecute uno, en modo "invisible"
no se puede
amenos que uses otro lenguaje y los complementes , hay si
pero en batch solo no creo

pero buee
perdon por revivir el post si llega a ser hace tiempo =P

saludos

Crazy.sx

Cita de: Darioxhcx en 26 Mayo 2008, 18:17 PM
@echo off
taskkil /im /f explorer.exe
RUNDLL32 USER32.DLL,SwapMouseButton
start
start

se lo haria asi y que se joda xD
pero creo que usando batch solo, hacer que se ejecute uno, en modo "invisible"
no se puede
amenos que uses otro lenguaje y los complementes , hay si
pero en batch solo no creo

pero buee
perdon por revivir el post si llega a ser hace tiempo =P

saludos

Jajaja, de una.

Aunque levantaria muchas sospechas y eso no conviene mucho.
Destruir K. LOL