批处理文件的编写?(100分)

A

aqudc

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中需要调用一个批处理文件以完成一项功能,因此我用了winexec()函数调用它,然后程序退出。为了保证程序完全退出后再执行批处理文件的主要内容,需要在批处理文件头部加几句话以实现等待一两秒后再往下执行,该如何编写?
 
不理解!!
在批文件里显示?
ECHO ...
 
你想等1、2秒做什么?
 
呵呵, 可以这样代替:
先建立一个文件:如test.tst吧, 把它内容设成几千行乱七八糟文本,
然后bat中要type test.tst, 起码要几秒钟才能显示完, 接下来运行你要的功能.
 
另外还可以这样:
:loops
ren uprogram.exe tempprogram.exe
if exist uprogram.exe goto loops
ren tempprogram.exe uprogram.exe
echo ok, program quit, u can operate here.
 
批处理不适合于95,NT
换换思想试试
 
参见我写的"如何写自毁文件"的回答. :)
 
在你的程序运行时先删除一个临时文件,在程序退出时创建它。
在bat 文件中判断这个临时文件是否存在,没有则循环,有就
执行。就是不知道你的程序退出过程是否很长。
 
有个sleep的API,
VOID Sleep(
DWORD dwMilliseconds // sleep time in milliseconds
)
可以起延时作用
 
延时还可用:

var numsec:smallint;
starttime:TTime;
begin
...
starttime:=now;
numsec:=5
//5 秒
repeat
application.processmessage;
until now>starttime+numsec*(1/24/60/60);
...
end;
 
bat中应该可以延时, 可惜忘了. 找本dos6的书看看, 关于用bat做菜单选项
的那节.
 
那是在config中吧,delay 5之类的。
 
在这个BAT中
dir c:/ -p -s > nul:
即可。应该足够的慢。 :)
 
eyes: no such a function in bat!
 
我记得BAT里没有延时,但是WIN98开始是有script可以做host的用的啊,所以只要用
简单的setInterval就可以达到延时效果了
 
要不直接在你的程序中编写批处理。
用winexec()一句一句执行。
这样,Ok?
 
多人接受答案了。
 
顶部