中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]抽奖————————模拟线程
« [1] [2] »
作者:
标题: [原创]抽奖————————模拟线程 上一主题 | 下一主题
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by s11ss at 2008-4-28 14:11:

start /b del t^&exit
::再打开一个cmd.exe来删除t并退出新的cmd.exe。在t的“生存期间”,“线程”检测到t而退出(“线程”退出)。

这里的"exit"退出的到底是哪个Cmd.exe,第一个、第二个、还是第三个?
不是很明白。



┌───────┐
├→学习→实践→┤
└───────┘
2008-4-28 21:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
s11ss
银牌会员





积分 2098
发帖 566
注册 2007-9-11
状态 离线
『第 17 楼』:  

这里的"exit"退出的是专门用来删除临时文件t的cmd.exe,即第三个。

2008-4-28 22:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
PPdos
高级用户




积分 783
发帖 268
注册 2006-12-26
状态 离线
『第 18 楼』:  



  Quote:
Originally posted by zh159 at 2008-4-28 05:37 PM:
看看是否可以利用%ERRORLEVEL%

建议高手 不要生成临时文件试试



菩提本无树,明镜亦非台,本来无一物,何处惹尘埃.
2008-4-29 07:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wxcute
中级用户





积分 458
发帖 211
注册 2006-7-26
状态 离线
『第 19 楼』:  

还有个问题,(我很菜,不要怪我罗嗦)加转意字符(^)与不加区别很大,为什么?
为什么加了^后exit关闭的是新开的cmd.exe进程?



┌───────┐
├→学习→实践→┤
└───────┘
2008-4-29 19:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
mkd
初级用户





积分 109
发帖 30
注册 2007-9-5
状态 离线
『第 20 楼』:  


@echo off
:m
if "%1" equ "-t" goto t
subst z: "%cd%"
start /b %~s0 -t
echo 请按任意键停止. . .&pause>nul
subst /d z:
echo 请按任意键开始. . .&pause>nul
goto m
:t
if not exist z:\ exit
title 获奖观众的号码是:%random%
goto t
[ Last edited by mkd on 2008-4-30 at 02:41 AM ]

   此帖被 +18 点积分       点击查看详情   
评分人:【 plp626 分数: +9  时间:2008-4-30 07:18
评分人:【 26933062 分数: +9  时间:2008-4-30 20:44


2008-4-30 01:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 21 楼』:  

虚拟盘,我没想到,不知速度如何?能有什么好的方法继续想。。。

现在还没有可靠的系统环境变量的方法。。。



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-4-30 07:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 22 楼』:  

有点无赖,不要砸我哦。。。。
但是可以不用临时文件。
:
@echo off&color 1f
:m
if "%1"=="t" goto t
start /b %~s0 t %p%
for /f "skip=2 tokens=2" %%a in ('Tasklist /FI "IMAGENAME eq cmd.exe"') do (
   call set p1=%%p2%%
   set p2=%%a
)
echo 请按任意键停止. . .&pause>nul
taskkill  /f /pid %p1% >nul
echo 请按任意键开始. . .&pause>nul
goto m
:t
title 获奖观众的号码是:%random%
goto t




致精致简!
2008-4-30 13:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 23 楼』:  

这不算”无赖“,正常思维,谁给咱来个颠覆性思维的??



山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2008-4-30 13:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
scarecrow0929
初级用户





积分 20
发帖 10
注册 2008-1-1
状态 离线
『第 24 楼』:  

请问:
start /b %~s0 -t
-t 是用来干什么的?

cd.>t 这一句是不是把当前目录写到临时文件t?

谢谢解答!

2008-5-12 00:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: