cmd.exe: Comment exécuter le processus d'arrière-plan, exécuter certaines choses, arrêtez le processus de fond

Je veux exécuter un script de lot qui:

Exécute le processus de fond (serveur Selenium RC, Si c'est important);

En attente jusqu'à ce que le processus d'arrière-plan commence à écouter n'importe quel port (Ou attendez un temps fixe);

remplir certaines instructions;

arrête le processus de fond.

Je l'ai écrit:

start java -jar "path\selenium-server.jar" 
ping -n 5 127.0.0.1 >NUL
"path\Gallio.Echo.exe" "path\MyAssembly.dll"
REM now, how do I stop the background process?
Invité:

Christine

Confirmation de:

vous parlez «DOS», Mais je suppose que tu veux dire la coquille Windows CMD. (Pour terminer, MS-DOS - Ce n'est pas un système d'exploitation multitâche.)

Bien bien ... Voici un hack, que je viens de venir. Je me sens sale, même l'offrir.

SET TASK=%RANDOM%-SELENIUM-SERVER-%RANDOM%
start "%TASK%" java -jar "path\selenium-server.jar"
ping -n 5 127.0.0.1 >NUL"
path\Gallio.Echo.exe" "path\MyAssembly.dll"
taskkill /FI "WINDOWTITLE eq %TASK%"

En supposant que l'équipe "java" n'affecte pas vraiment la fenêtre de titre, cette équipe "START" établit le titre de la fenêtre sur "nombre aléatoire" -SELENIUM-SERVER- "random number", puis TASKKILL Je vais tuer toutes les fenêtres en utilisant ce nom.

Fu ... Cela me fait me sentir sale.

Si un "java" Ne correspond pas à l'en-tête de la fenêtre, vous pouvez également faire:

SET TASK=%RANDOM%-SELENIUM-SERVER-%RANDOM%
start "%TASK%" cmd /k start java -jar "path\selenium-server.jar"
ping -n 5 127.0.0.1 >NUL"
path\Gallio.Echo.exe" "path\MyAssembly.dll"
taskkill /T /FI "WINDOWTITLE eq %TASK%"

Lequel à

vraiment

Me fait me sentir sale. Cela crée une fenêtre CMD avec un titre aléatoire qui, à son tour, lance "java" Dans une fenêtre séparée. «/ T» dans TASKKILL détruire tous les processus de filiale Windows «FOO», Nommément fenêtres «java».

Je suis malade. > le sourire <

Pour répondre aux questions, connectez-vous ou registre