目录

一、分清楚exe接收值的方式

1、打开exe时提示输入1、2、3...

2、知道exe形参(程序主函数中定义的argv[])

二、call和start的区别


一、分清楚exe接收值的方式

1、打开exe时提示输入1、2、3...

如图:

这种是程序运行时接收用户输入参数,如果是bat写的程序就是像:set /p a=,或者c语言中的scanf、gets等,所以要想自动化输入只能用模拟键盘的方式

通过VBS:

echo set wshshell=CreateObject("Wscript.shell") > 1.vbs
echo wshshell.run "(这里填提示输入数值exe的路径)">> 1.vbs
echo wscript.sleep 1000>> 1.vbs
echo wshshell.sendkeys "(这里填你要输入的数值)">> 1.vbs
echo wshshell.sendkeys "{enter}">> 1.vbs
echo wscript.quit>> 1.vbs
call 1.vbs

2、知道exe形参(程序主函数中定义的argv[])

如果你知道exe程序是需要用到argv[]中的参数的话,则可以利用call和start来实现

通过call:

主要命令格式

FileName 参数

 指定的要调用的文件,该文件必须是批处理文件或执行文件

Pararneters参数

  指定调用 FileName 时传递的参数 ,多个参数使用空白分隔 

::一个参数
call test.bat 1
::多个参数
call test.bat 1 2 3

通过start命令:

::一个参数
start test.bat 1
::多个参数
start test.bat 1 2 3

二、call和start的区别

start是开启一个新的进程,所以start后的程序就和父程序没瓜葛了

call是在父程序中调用一个子程序,所以需要等待子程序执行完才会跳回父程序继续执行下面的命令

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的

更多推荐

利用Bat打开exe程序并传入值