3 votes

Comment envoyer des commandes à un EXE s'exécutant via la ligne de commande avec batch ?

J'ai une application serveur appelée TerrariaServer.exe et je veux pouvoir lui envoyer des commandes avec un fichier batch séparé. TerrariaServer.exe est un programme fonctionnant en ligne de commande. Comment pourrais-je lui envoyer une commande telle que "save" et "exit" ? La réponse pourrait être des tuyaux, mais je ne suis pas trop sûr. Voici un peu ce que j'ai exécuté dans un fichier batch pendant que TerrariaServer.exe tournait...

@echo off
echo save | TerrariaServer.exe
echo exit | TerrariaServer.exe

Après ça, rien ne s'est passé. Je ne sais pas si vous avez besoin de le savoir mais il s'agit d'un serveur de jeux vidéo et les commandes "save/exit" vont avec.

6voto

Shariq Points 581

Eep, utilisez le type pour les entrées multilignes !

echo save | TerrariaServer.exe

ouvrira TerrariaServer.exe et lui enverra "save" comme entrée.

echo exit | TerrariaServer.exe

ouvrira TerrariaServer.exe et lui enverra "exit" comme entrée.

Vous voyez le problème ? :P

Vous exécutez TerrariaServer.exe. deux fois !

Vous devez utiliser la commande type . Vous pouvez taper un document texte dans l'entrée d'un exécutable. Tout d'abord, créons ce document texte (ou n'importe quel fichier d'ailleurs, l'extension n'a pas d'importance !)

echo save>somefile.txt
echo exit>somefile.txt

Maintenant, tapons ceci dans TerrariaServer.exe...

type somefile.txt | TerrariaServer.exe

Peut-être supprimer somefile.txt quand on aura fini ?

del somefile.txt

J'espère que cela a clarifié les choses ! :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X