问题
在cmd中调用可执行程序,可执行程序需要press enter输入回车来继续执行,如何通过程序实现。
解决方法
使用批处理文件,调用可执行程序,并自动输入键值,send key automatically。
reference:
1.Press Keyboard keys using a batch file
2.Send key automatically
示例
@if (@CodeSection == @Batch) @then
@echo off
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
rem Start the other program in the same Window
start "" /B cmd //调用cmd
%SendKeys% "cd C:\Program Files\Ext2Fsd{ENTER}" //cd至指定目录
%SendKeys% "mke2fs -t ext4 \Device\HarddiskVolume8{ENTER}" //执行可执行程序
set /P "=] Wait and send an Enter key:" < NUL
ping -n 5 -w 1 127.0.0.1 > NUL
%SendKeys% "{ENTER}" //输入回车符
%SendKeys% "exit{ENTER}" //执行完毕退出cmd
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));