2009-07-29 53 views
3

有没有办法将命令发送到另一个命令行程序?发送命令到其他命令行程序

是因为我有一个特殊的命令行程序,但使用的语法我无法发送命令到它像program.exe something_to_do

程序执行是这样的:(‘这里的语法’是我想要的输入文字也进入启动)

TheWhateverCommandLineProgram 
Version 1.1 
Give an option: "here syntax" 

代码程序看起来是这样的:

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

嗯,我想这样会导致它不是我W¯¯ (顺便说一句:当然它不叫TheWhateverCommandLineProgram)

+1

您可以更具体地了解问题所在。再多说一点关于你的“特殊命令行程序”是什么,那就是你想做的事情。你想发送命令给一个已经运行的程序,或者只是用一组特定的选项启动它? – 2009-07-29 08:32:32

回答

0

其他程序以什么形式输入?从命令提示符?

如果是后者的话,我推荐的AutoHotkey:http://www.autohotkey.com/

您可以使用AutoHotkey的桥梁和它将作为按键发送命令到其他批处理文件的窗口。

你可以在他们的论坛寻求帮助。他们相当有帮助。

+0

但它不具有条命令行版本:(我不希望用户必须输入这些命令:S。 – 2009-07-29 08:39:22

+0

用户将不必键入命令的AutoHotkey会做打字阅读它的教程 – 2009-07-29 08:48:24

1

我不是100%确定我明白你在找什么。这里有两个选项:

  1. 你有两个窗口,每个窗口运行一个批处理程序。假设他们被称为myscript1.batmyscript2.bat。你想从myscript1.bat发送一组命令由myscript2.bat

  2. 执行您有一个名为myscript.bat一个批处理脚本,它执行命名program.exe一个程序。你想要program.exe执行一些命令,或者做一些事情。

这些都是你要找的吗?这里的一些想法:

  1. myscript1.bat创建第三个文件,mycommands.bat。一旦myscript2.bat看到文件mycommands.bat存在,它将执行并删除它。 (Wow。Lame。)

  2. 使用Windows脚本宿主命令(它自Win2K以来内置于Windows)或Powershell(通常在现今大多数计算机上,如果它们已被更新)。这些中的任何一个都可以将按键发送到另一个程序。使用这些击键,您可以控制其他程序。

3

如果你只是想给键盘输入一个命令行程序,你可以只使用echo和管道它:

echo some text | program.exe 

如果您需要更多的线,然后将它们写入一个文件,并使用输入重定向:

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