[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 此双进程批处理,怎么实现按任意退出?

原帖由 batman 于 2010-1-20 17:53 发表
跟风,原来写的:@echo off&color 1f&mode con lines=5
if defined flag goto next
set "flag=a"
start /b %~nx0
title 按任意键退出
set "str=只是为何当初你是不听所有纷纷扰扰满天流言漫天风雨你会选择了我? ...

曾在QQ请教于Batman,可能因为batman太忙,没注意到。
原贴地址:http://bbs.bathome.net/viewthrea ... ghlight=%2Bwgoxm521

[ 本帖最后由 wgoxm521 于 2010-10-31 22:09 编辑 ]

你听谁说批处理可以实现双线程?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&color 1f&mode con lines=5
  2. if defined flag goto next //启动标志的判断 和下面的set语句为一体  没有就去next (任意键退出)
  3. set "flag=a"  //设置启动标志
  4. start /b %~nx0 //重新启动自己  此时再次启动的 标志就存在了 接“if defined ”语句
  5. title 按任意键退出 //设置title  对应下面的taskkill
  6. set "str=只是为何当初你是不听所有纷纷扰扰满天流言漫天风雨你会选择了我?只是为何如今我们不顾一切追求真爱坚持到底苦尽甘来你会放弃了我?再说你也不会懂,心再痛你能做什么,只有把自己深锁,错了又错。。。"
  7. for /l %%i in (1,1,40) do call,set "kong=%%kong%% "
  8. :again
  9. set "a=%kong%%str%"
  10. :lp
  11. cls&echo.&echo.
  12. set /p=%a:~,40%<nul&set "a=%a:~1%"
  13. for /l %%i in (1,1,1000) do echo>nul
  14. if defined a goto lp
  15. goto again
  16. :next
  17. pause>nul
  18. taskkill /f /fi "windowtitle eq 按任意键退出*" /im "cmd.exe">nul 2>nul  //关闭显示的cmd 接上面的title语句
  19. exit //自己退出
复制代码


其实就是利用标志两次启动了自己~  如果你运行会发现2个cmd   一个是直接启动无标志:直接pause>nul等待taskkill的  一个有标志的是start启动:文字特效

TOP

回复 2楼 的帖子

这不是可以同时打开两个命令窗口吗?
只是start /b  这个参数,所以就打开一个窗口了
这不就是双线程么?

[ 本帖最后由 wgoxm521 于 2010-10-31 17:33 编辑 ]
萍水相逢,你却给我那么多。
每当孤独我回首,你的爱总在不远的地方等着我...

TOP

回复 4楼 的帖子

那你觉得它为什么不是双进程,而是双线程呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3楼 的帖子
感谢bluewing009的翻译帮助!
但是今天测试过兄给的代码后,我对bluewing009兄翻译的几点疑问:
1、我没有看到,而且还是不理解,此BAT是怎么得到从键盘来的信息的,并且执行
:next
pause>nul
taskkill /f /fi "windowtitle eq 按任意键退出*" /im "cmd.exe">nul 2>nul
这些代码的
2.if defined flag goto next //启动标志的判断 和下面的set语句为一体  没有就去next (任意键退出)
set "flag=a"  //设置启动标志
start /b %~nx0
还有这一句,if defined flag goto next 这一句判断后,后面的set "flag=a" 对if defined flag goto next还能起作用,有效果?而且在BAT运行时,接受“任意键”,并执行退出命令?
回复 5楼 的帖子:
恩,确实是双进程,“双线程”这个名字是从别的地方看到的。因为不理解,所以就相当然了。
感谢batcher的指正

[ 本帖最后由 wgoxm521 于 2010-10-31 18:16 编辑 ]
萍水相逢,你却给我那么多。
每当孤独我回首,你的爱总在不远的地方等着我...

TOP

返回列表