Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 向其他命令行程序发送命令_Windows_Batch File_Command_Send - Fatal编程技术网

Windows 向其他命令行程序发送命令

Windows 向其他命令行程序发送命令,windows,batch-file,command,send,Windows,Batch File,Command,Send,有没有办法将命令发送到另一个命令行程序 '因为我有一个特殊的命令行程序,但我不能用program.exe something\u to\u do这样的语法向它发送命令。 程序执行如下操作:(“here syntax”是我要输入文本的地方,也是输入开始的地方) 代码中的程序如下所示: echo TheWhateverCommandLineProgram echo Version 1.1 Set opt= set /p opt=Give an option: if %opt%==command1

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

'因为我有一个特殊的命令行程序,但我不能用
program.exe something\u to\u do这样的语法向它发送命令。

程序执行如下操作:(“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
...

嗯,我想是的,因为不是我做的(顺便说一句:当然不是什么命令行程序)

另一个程序以什么形式接受输入?从命令提示符

如果是后者,我建议使用自动热键:

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


你可以在他们的论坛上寻求帮助。他们很有帮助。

我不能100%肯定我了解你在找什么。这里有两个选项:

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

  • 您有一个名为
    myscript.bat
    的批处理脚本,它执行一个名为
    program.exe
    的程序。您希望
    program.exe
    执行一些命令或执行一些操作

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

  • 制作
    myscript1.bat
    创建第三个文件,
    mycommands.bat
    。一旦
    myscript2.bat
    看到文件
    mycommands.bat
    存在,它将执行并删除该文件。(哇,瘸子。)

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


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

    echo some text | program.exe
    
    如果需要更多行,请将它们写入文件并使用输入重定向:

    echo one line > file
    echo second line >> file
    program.exe < file
    
    回显一行>文件
    回显第二行>>文件
    program.exe<文件
    
    您能否更具体地说明问题所在。多说一点你的“特殊命令行程序”是什么,你想做什么。您想向已经运行的程序发送命令,还是只使用一组特定的选项启动它?但它没有命令行版本:(我不希望用户必须在中键入这些命令:用户不必键入命令。自动热键将执行键入操作。阅读其教程。特别是您需要Send命令:我认为函数的名称是
    SendKeys
    ,但我记不起您需要哪个对象。用谷歌搜索“SendKeys”让您看到-在该页末尾的示例。嗯,问题是,它在Vista上不可用(在7?上也是如此),应该向公众发布,以便。。。
    echo one line > file
    echo second line >> file
    program.exe < file