中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助奇怪问题]START调用内部命令时如何实现延迟
作者:
标题: [求助奇怪问题]START调用内部命令时如何实现延迟 上一主题 | 下一主题
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『楼 主』:  [求助奇怪问题]START调用内部命令时如何实现延迟

start启动其他程序时加/W参数有效,调用内部命令时却失效了?这是为什么?
我查看了以前的很多帖子都没有提到过START调用命令的延迟,只有调用其他程序的延迟。
@echo off
rem 为了解决使用EMULE下载后自动关机会损坏下载的问题,编写此脚本。思路如下:
START /W shutdown -s -t 200
START /W shutdown -a
START XCOPY /S/C/H/R/Y rpl\*.*  d:\
shutdown -s -t 100
@echo on
上面代码中如何让START在执行shutdown -s -t 200后等待200S完成后继续执行shutdown -a再等待完成后在继续执行START /W XCOPY /S/C/H/R/Y rpl\*.*  d:\,复制完成后再执行shutdown -s -t 100

说明:虽然可以把每个内部命令写一个BAT文件来实现,但是命令很多就很麻烦,如何解决这个问题?是不是START对内部命令真的无能为力?

[ Last edited by HUNRYBECKY on 2006-12-30 at 11:55 PM ]

2006-12-30 23:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 2 楼』:  

虽然使用start比较难实现内部命令的延迟,但是可以使用SLEEP来实现,下面的效果非常好,贴出来大家参考下,这下子就不用再为EMULE的坏毛病发愁了。
@echo off
rem 解决使用EMULE下载后自动关机会损坏下载的问题,编写此脚本.
SET /P STIME=多长时间后关机?输入时间加小写的h,m或s即可,如1h表示一小时:
SLEEP %STIME%
ECHO 正在备份文件,请等待.......
if not exist d:\rpl\ md d:\rpl
XCOPY /S/C/H/R/Y d:\emule\temp\*.bak  d:\rpl\
shutdown -s -t 100
@echo on
EXIT

2006-12-31 00:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  


  延迟不会用 ping 来实现么?


2006-12-31 01:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 4 楼』:  

START 其实在运行程序时,如果运行的是内部CMD命令或是批文件的化,默认是以CMD /K来调用的,/K也是就运行程序保留窗口,这样就可以达到延迟.但是还有问题,那就是,如果运行的内容CMD命令是32位的GUI程序的化,CMD不等应用程序终止就返回的命令提示.如果是在CMD命令行执行,则不运行.所以SHUTDOWN就直接返回了.好象是这果并没有用/K来调用.
你可以用START /W CMD /K SHUTDOWN -S -T 100 来试一下.
这里其实直接用CMD就可以了.



for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2006-12-31 01:47
查看资料  发送邮件  发短消息 网志  OICQ (33899867)  编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by hxuan999 at 2006-12-31 01:47:
START 其实在运行程序时,如果运行的是内部CMD命令或是批文件的化,默认是以CMD /K来调用的,/K也是就运行程序保留窗口,这样就可以达到延迟.但是还有问頮..

谢谢兄的回答,不过你给的还是不行。

2007-1-3 08:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lxmxn at 2006-12-31 01:01:

  延迟不会用 ping 来实现么?

我说的延迟不是兄说的延迟。
我的意思是调用一些内部命令尤其是有图形界面时如何延迟。
如START /W shutdown -s -t 200命令 我想等待那个关机的窗口关闭时完成时再执行另一个命令,哈哈,你试下,比较难吧。

2007-1-3 08:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: