elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  BATCH (Abrir x Programa solo si hay otro programa abierto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: BATCH (Abrir x Programa solo si hay otro programa abierto)  (Leído 3,281 veces)
alquimista3000

Desconectado Desconectado

Mensajes: 4


Ver Perfil
BATCH (Abrir x Programa solo si hay otro programa abierto)
« en: 15 Abril 2023, 02:08 am »

Saludos Espero que puedan ayudarme con este pequeño inconveniente.

quiero un scrip en batch que me abra un programa primero antes que el otro y si yo cierro el primer programa el otro no abra, pero si el programa esta abierto en 10 segundos me abra el otro.
pero si tengo ambos programa abierto no me abran ninguno.

no se si me di a entender bien por ahora solo tengo esto


(tasklist /FI "IMAGENAME eq steam.exe" | find "steam.exe" > NUL
IF "%ERRORLEVEL%" neq "0" (steam)
Start /B "Titulo" "C:\Program Files (x86)\Steam\Steam.exe"
)

(Ping.exe -n 10 LOCALHOST)1>Nul

(tasklist /FI "IMAGENAME eq MK10.exe" | find "MK10.exe" > NUL
IF "%ERRORLEVEL%" neq "0" (MK10)
Start /B "Titulo" "C:\Juegos\Mortal Kombat X\Binaries\Retail\MK10.exe"
)

si pueden ayudarme en esto estaría muy agradecido de todo corazón estoy un poco quedado aquí y realmente no se mucho sobre batch




En línea

EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.075



Ver Perfil
Re: BATCH (Abrir x Programa solo si hay otro programa abierto)
« Respuesta #1 en: 15 Abril 2023, 15:37 pm »

Código
  1. :: pero si tengo ambos programa abierto no me abran ninguno.
  2. TaskList | FindStr "programa1.exe programa2.exe" > Nul
  3. If %ErrorLevel% EQU 0 Exit /B
  4.  
  5. :: quiero un scrip en batch que me abra un programa primero antes que el
  6. :: otro y si yo cierro el primer programa el otro no abra, pero si el
  7. :: programa esta abierto en 10 segundos me abra el otro.
  8. Start programa1.exe
  9. TimeOut /T 10 /NoBreak
  10. TaskList | FindStr "programa1.exe" > Nul
  11. If %ErrorLevel% NEQ 0 Exit /B
  12. Start programa2.exe
  13.  
  14. Exit /B

Mejor utilizar TaskList sin filtros ya que se usará FindStr para hacer el filtrado/búsqueda, FindStr se prefiere a Find por ser más potente, además permite buscar varias cosas a la vez separadas por un espacio.

En lugar de Ping puedes usar directamente TimeOut, el uso de Ping supuestamente consume menos CPU, pero es las máquinas de hoy no creo que se note para nada, en mis pruebas TimeOut consume menos Ram (diferencias de unos 100KB).

Se acostumbra usar Exit /B como buena práctica, ya que solo Exit puede hacer que se cierre el batch completo en subrutinas


En línea

alquimista3000

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: BATCH (Abrir x Programa solo si hay otro programa abierto)
« Respuesta #2 en: 16 Abril 2023, 22:32 pm »

muchisimas gracias EdePC Me sirve muy bien aun que tuve que hacerle una modificación pequeña pero gracias a ti por darme este scrip es que puedo hacer lo que yo queria y me quedo asi

    TaskList | FindStr "program1.exe" > Nul
    If %ErrorLevel% EQU 0 Exit /B

    Start /B "Titulo" "C:\Program Files\program1\program1.exe"
    TimeOut /T 10 /NoBreak
    TaskList | FindStr "program1.exe" > Nul
    If %ErrorLevel% NEQ 0 Exit /B
    Start /B "Titulo" "C:\Program Files\program2\program2.exe"
    
    Exit /B

de verdad muchisimas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines