2009-07-29 5 views
3

Est-il possible d'envoyer des commandes à un autre programme de ligne de commande?Envoyer des commandes à d'autres programmes de ligne de commande

Parce que j'ai un programme de ligne de commande spéciale, mais je ne peux pas envoyer des commandes à l'aide de la syntaxe comme program.exe something_to_do

le programme exécute quelque chose comme ceci: (« ici la syntaxe » est l'endroit où je veux entrée texte et entrez également commencer)

TheWhateverCommandLineProgram 
Version 1.1 
Give an option: "here syntax" 

le programme dans le code ressemble à ceci:

echo TheWhateverCommandLineProgram 
echo Version 1.1 
Set opt= 
set /p opt=Give an option: 
if %opt%==command1 goto com1 
if %opt%==command2 goto com2 
... 

Eh bien, je pense que oui parce que ça me était pas w ho l'a fait (btw: bien sûr, il n'est pas appelé TheWhateverCommandLineProgram)

+1

Pouvez-vous être un peu plus précis sur ce qu'est le problème. En dire un peu plus sur ce qu'est votre "programme spécial de ligne de commande" et ce que vous voulez faire. Voulez-vous envoyer des commandes à un programme déjà en cours ou simplement le démarrer avec un ensemble d'options particulier? –

Répondre

0

Sous quelle forme l'autre programme prend-il en entrée? À partir de l'invite de commande?

Dans ce dernier cas, je vous recommande Autohotkey: http://www.autohotkey.com/

Vous pouvez utiliser Autohotkey comme un pont et il envoie la commande comme à la fenêtre pressions sur les touches de l'autre fichier batch.

Vous pouvez demander de l'aide sur leur forum. Ils sont très utiles.

+0

mais il n'a pas une version de ligne-commmand :(je ne veux pas que l'utilisateur doive taper ces commandes dans: s –

+0

L'utilisateur n'aura pas à taper les commandes.Autohotkey fera la frappe.Lire son tutoriel –

+0

en particulier vous avez besoin de la commande Envoyer: http://www.autohotkey.com/docs/commands/Send.htm –

1

Je ne suis pas sûr à 100% que je comprends ce que vous cherchez. Voici deux options:

  1. Vous avez deux fenêtres exécutant chacune un programme batch. Disons qu'ils sont appelés myscript1.bat et myscript2.bat. Vous voulez envoyer une série de commandes de myscript1.bat à exécuter par myscript2.bat

  2. Vous avez un script batch unique nommé myscript.bat, qui exécute un programme unique nommé program.exe. Vous voulez program.exe pour exécuter certaines commandes, ou faire quelque chose.

Est-ce que ce que vous cherchez? Voici une idée:

  1. Faire myscript1.bat créer un troisième fichier, mycommands.bat. Une fois que myscript2.bat voit le fichier mycommands.bat existe, il va l'exécuter et le supprimer. (Wow, Lame)

  2. Utilisez la commande Windows Scripting Host (intégrée à Windows depuis Win2K) ou Powershell (généralement sur la plupart des ordinateurs de nos jours, s'ils ont été mis à jour). L'un ou l'autre peut envoyer des frappes à un autre programme. En utilisant ces touches, vous pouvez contrôler l'autre programme.

+0

Je cherche le numéro 2;) –

+0

Comment puis-je le faire dans la commande Windows Scripting Host ?? –

+1

Je pense que le nom de la fonction est 'SendKeys', mais je ne me souviens pas de quel objet vous avez besoin. Googling pour "sendkeys" vous amène à http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx - voir les exemples à la fin de cette page. – scraimer

3

Si vous voulez juste donner entrée du clavier à un programme de ligne de commande, vous pouvez simplement utiliser echo et redirigez:

echo some text | program.exe 

Si vous avez besoin de lignes, puis les écrire dans un fichier et d'utiliser l'entrée redirection:

echo one line > file 
echo second line >> file 
program.exe < file 
Questions connexes