9

Hola Estoy utilizando Windows 7 de 64 bitsCómo iniciar 2 programas simultaneamente en el intérprete de comandos de Windows

Aquí está el fragmento de código que estoy utilizando para iniciar

@echo off 
call "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" 
call "G:\League of Legends\lol.launcher.exe" 
exit 

Pero a menos que cierro LOLRecorder.exe no lo puedo iniciar mi lol.launcher.exe ... básicamente quiero que ambos se ejecuten y que el comando cmd salga después de que comiencen. ¿Qué pasa aquí? Revisé otra respuesta de stackoverflow Here pero se refiere al mismo método que estoy usando.

EDIT:

Con el comando de arranque que apenas comience 2 ventanas de terminal y nada comienza!

@echo off 
start "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" 
start "G:\League of Legends\lol.launcher.exe" 
exit 

Respuesta

18

Con el comando de inicio, solo comienza 2 ventanas de terminal y nada comienza.

El problema son las comillas (que lamentablemente son necesarias, debido a los espacios en las rutas). Al comando start no parece gustarle.

Puede solucionar esto utilizando los nombres cortos de DOS para todos los directorios (y eliminar comillas), o especificando el directorio por separado y citándolo (que el comando start parece ser capaz de manejar).

Prueba esto:

@echo off 
start /d "C:\Program Files (x86)\LOLReplay" LOLRecorder.exe 
start /d "G:\League of Legends" lol.launcher.exe 

O, si sus archivos por lotes se hacen más complicados en el futuro, o sus nombres de los programas tienen espacios en ellos, esto:

@ECHO OFF 

CALL :MainScript 
GOTO :EOF 

:MainScript 
    CALL :RunProgramAsync "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" 
    CALL :RunProgramAsync "G:\League of Legends\lol.launcher.exe" 
GOTO :EOF 

:RunProgramAsync 
    REM ~sI expands the variable to contain short DOS names only 
    start %~s1 
GOTO :EOF 
1

call es para archivos por lotes solamente, y espera a que el destinatario de la llamada para regresar. Debe usar el comando start para iniciar los programas en segundo plano. Como una ventaja adicional, puede especificar una prioridad para el proceso. Si necesita ejecutar algo como otro usuario, use runas.

+0

he editado mi pregunta. Por favor compruébelo – footy

+0

@footy: ¿Alguno de los dos comandos individualmente (sin 'start') inicia correctamente el programa respectivo, o tal vez le faltan algunas opciones de línea de comando? (Oh, no es necesario decir "salir", creo.) –

+0

Funciona de forma individual. No hay argumentos de línea cmd que deba dar para iniciar estos programas. – footy

3

Start requiere parámetros para ventana título. Probar: inicio "Lolrecorder" "C: \ Archivos de programa (x86) \ LOLReplay \ LOLRecorder.exe" inicio "Lol-Launcher" "G: \ League of Legends \ lol.launcher.exe"

Este dará a las ventanas cmd iniciadas por el título "Lolrecorder" y "Lol-Launcher"

1

Especifique un título y el modificador/c para indicarle a la ventana INICIADA que se vaya después de que finalice su mandato.

start "recorder" /c "C:\Program Files (x86)\LOLReplay\LOLRecorder.exe" 
start "LOL" /c "G:\League of Legends\lol.launcher.exe" 

Este reference ha respondido hasta ahora casi todas las preguntas que he tenido acerca de CMD.

Cuestiones relacionadas