【问题标题】:Send commands to other command-line programs向其他命令行程序发送命令
【发布时间】:2010-11-14 23:42:20
【问题描述】:

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

'因为我有一个特殊的命令行程序,但我不能使用像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
...

好吧,我想是因为不是我做的(顺便说一句:当然它不叫 TheWhateverCommandLineProgram)

【问题讨论】:

  • 您能否具体说明问题所在。多说一点你的“特殊命令行程序”是什么以及你想要做什么。您想向已经运行的程序发送命令还是只使用一组特定的选项启动它?

标签: windows batch-file command send


【解决方案1】:

如果您只想为命令行程序提供键盘输入,您可以使用echo 并通过管道输入:

echo some text | program.exe

如果您需要更多行,则将它们写入文件并使用输入重定向:

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

【讨论】:

    【解决方案2】:

    我不是 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 存在,它将执行并删除它。 (哇。跛脚。)

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

    【讨论】:

    • 我想函数的名字是SendKeys,但是我不记得你需要哪个对象了。在谷歌上搜索“sendkeys”可以找到msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx - 请参阅该页末尾的示例。
    • 嗯,问题是,它在 Vista 上不可用(在 7 上也是如此?),这应该向公众发布,所以......
    【解决方案3】:

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

    如果是后者,那么我推荐 Autohotkey:http://www.autohotkey.com/

    您可以使用 Autohotkey 作为桥梁,它会将命令作为按键发送到另一个批处理文件的窗口。

    您可以在他们的论坛中寻求帮助。他们很有帮助。

    【讨论】:

    • 但它没有命令行版本 :( 我不希望用户必须在 :s 中键入这些命令
    • 用户不必键入命令。 Autohotkey 将进行打字。阅读它的教程。
    • 特别需要发送命令:autohotkey.com/docs/commands/Send.htm
    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多