批处理batch运行exe文件时如何输入exe要求的内容
我有一个exe文件,AA.exe.当我只运行一次该文件时,我需要打开文件,然后按照它的提示依次输入一些内容。比如“numberofitems:”然后我需要输入“20”输入...
我有一个exe文件,AA.exe.
当我只运行一次该文件时,我需要打开文件,然后按照它的提示依次输入一些内容。
比如 “number of items: ” 然后我需要输入“20”
输入之后又出现下一行提示“number of people",我需要输入”100”。
现在我想让exe文档自动运行100次,请问我应该如何写batch file呢?谢谢!!
还有一次提示为”file name",我第一次运行的时候这行应该输入“data.1.txt";第二次运行文件时需要输入”data.2.txt"……谢谢! 展开
当我只运行一次该文件时,我需要打开文件,然后按照它的提示依次输入一些内容。
比如 “number of items: ” 然后我需要输入“20”
输入之后又出现下一行提示“number of people",我需要输入”100”。
现在我想让exe文档自动运行100次,请问我应该如何写batch file呢?谢谢!!
还有一次提示为”file name",我第一次运行的时候这行应该输入“data.1.txt";第二次运行文件时需要输入”data.2.txt"……谢谢! 展开
2个回答
展开全部
第一步:准备好用于输入的文件list.txt,每次一行,形如:
20
100
"data.1.txt"
20
100
"data.2.txt"
保存为list.txt
注意,如果运行100次,每次输入3回,则list.txt应有300行。(输入内容有规律的话,也可以用批处理生成list.txt)
第二步:
(1)如果AA.exe本身是命令行程序的话,批处理文件a.bat这样写就可以了:
@echo off
(for /l %%i in (1,1,100) do AA.exe)<list.txt
(2)如果AA.exe是带有图形界面的程序的话,那就有点复杂了。我能想到的就是模拟按键输入,不知道还有没有其他好的方法。批处理文件a.bat如下:
@echo off
set cnt=100
set num=3
set "title=输入提示"
set time1=2
set time2=3
(for /l %%i in (1,1,%cnt%) do (
start "" AA.exe
ping -n %time1% 127.1 >nul
for /l %%j in (1,1,%num%) do (
set /p str=
setlocal enabledelayedexpansion
set "str=!str:"=""!"
mshta vbscript:clipboarddata.setdata("text","!str!"^)(close^)
endlocal
mshta vbscript:execute("document.write:With CreateObject(""Wscript.shell""):.AppActivate(""%title%""):.sendkeys(""^v~""):end with:self.close"^)
ping -n %time2% 127.1 >nul
)))<list.txt
exit
说明:
第二行cnt的值100:AA.exe要循环运行的次数
第三行num的值3:AA.exe运行后会的输入次数
第四行title的值"窗口标题":输入提示窗口的标题内容。这个是关键!如果提示窗口每次都不一样的话,这个批处理还需要修改一下。
第五行time1的值2:AA.exe启动完成所需的秒数
第六行time2的值3:输入提示窗口相隔的秒数,最小为3
最后,温馨提示下:
为了你这个问题,我可没少花功夫,亲~记得采纳哦~亲~O(∩_∩)O~
20
100
"data.1.txt"
20
100
"data.2.txt"
保存为list.txt
注意,如果运行100次,每次输入3回,则list.txt应有300行。(输入内容有规律的话,也可以用批处理生成list.txt)
第二步:
(1)如果AA.exe本身是命令行程序的话,批处理文件a.bat这样写就可以了:
@echo off
(for /l %%i in (1,1,100) do AA.exe)<list.txt
(2)如果AA.exe是带有图形界面的程序的话,那就有点复杂了。我能想到的就是模拟按键输入,不知道还有没有其他好的方法。批处理文件a.bat如下:
@echo off
set cnt=100
set num=3
set "title=输入提示"
set time1=2
set time2=3
(for /l %%i in (1,1,%cnt%) do (
start "" AA.exe
ping -n %time1% 127.1 >nul
for /l %%j in (1,1,%num%) do (
set /p str=
setlocal enabledelayedexpansion
set "str=!str:"=""!"
mshta vbscript:clipboarddata.setdata("text","!str!"^)(close^)
endlocal
mshta vbscript:execute("document.write:With CreateObject(""Wscript.shell""):.AppActivate(""%title%""):.sendkeys(""^v~""):end with:self.close"^)
ping -n %time2% 127.1 >nul
)))<list.txt
exit
说明:
第二行cnt的值100:AA.exe要循环运行的次数
第三行num的值3:AA.exe运行后会的输入次数
第四行title的值"窗口标题":输入提示窗口的标题内容。这个是关键!如果提示窗口每次都不一样的话,这个批处理还需要修改一下。
第五行time1的值2:AA.exe启动完成所需的秒数
第六行time2的值3:输入提示窗口相隔的秒数,最小为3
最后,温馨提示下:
为了你这个问题,我可没少花功夫,亲~记得采纳哦~亲~O(∩_∩)O~
追问
无法感谢更多!可是我还是没有运行出来。介意加我球球吗?我想让你看看这个exe文件长什么样子。。。谢谢~~345530148. 感谢!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询