中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 怎么判断在批处理中程序是否已经运行?
作者:
标题: 怎么判断在批处理中程序是否已经运行? 上一主题 | 下一主题
daiddcc
初级用户




积分 175
发帖 22
注册 2003-7-24
状态 离线
『楼 主』:  怎么判断在批处理中程序是否已经运行?

想编一批处理。 带几个参数, 其中有几个是单独项,另几个必须是在ucdos运行后再运行的。 这样会产生一个问题,如果将
\ucdos\rd16
\ucdos\knl
放在前面,那么不需要运行ucdos的那几项也必须得在运行ucdos后再运行,很讨厌。如果ucdos不放在前面,那几个必须运行在ucdos下的程序就得每项都加上\ucdos\rd16 ; \ucdos\knl 。有些重复和累赘。而且这几项就会重复运行ucdos,即管ucdos运行一次就够了。
    有什么好办法来解决么?
    可不可以在处理中作一判断,判断ucdos是否已运行?

2003-9-2 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 2 楼』:  

虽然我对批处理不太行,但我可以给你一些编程的思路。你可以在执行时产生临时文件做为标记呀,然后再在需要处理的地方做条件判断,以便执行不同的操作。



C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++   ☆☆☆ 中国DOS联盟成员 ☆☆☆    C++
C++    ★★★ 爱提问的红色狂想 ★★★     C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-9-3 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (189236106)  编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 3 楼』:  

Re daiddcc:

    你的问题说的不是很清楚。按照我的理解,你想将不需要ucdos的程序项与需要ucdos的程序项混杂运行,但是觉得ucdos频繁开关很麻烦。

   首先分析问题,要避免ucdos频繁开关所造成的代码冗余,可以将开关ucdos的代码单独写为一个批处理,然后在需要ucdos的程序项前后直接用call调用就行了;如果想避免执行过程的冗余,则需要具体问题具体分析,首先将需要ucdos的程序项和不需要ucdos的程序项分离,然后放在两个大模块中,在ucdos大模块中首先执行ucdos,然后在根据参数开关跳转到需要执行的具体模块中。
   
    另外,判断ucdos是否已运行可以注册环境变量,通常比产生临时文件要好些:

    ::ucdos.bat
      @echo off   
    \ucdos\rd16
      \ucdos\knl
      set ucdos=load

     ::application
      @echo off
    if "%ucdos%"=="" call ucdos.bat
      if "%ucdos%"=="load" goto 需要ucdos的程序或ucdos卸载标签





※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2003-9-6 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cn_archer
元老会员

农民


积分 2903
发帖 991
注册 2003-7-23
来自 福建省
状态 离线
『第 4 楼』:  

楼上的方法很实用啊!



艰难奋长戟,万古用一夫

中国DOS联盟  http://www.cn-dos.net   欢迎大家来共同学习
我的MSN&E-Mail cn_archer@hotmail.com  QQ 56049418
2003-9-6 00:00
查看资料  发送邮件  发短消息 网志  OICQ (56049418)  编辑帖子  回复  引用回复
congcong
初级用户




积分 112
发帖 3
注册 2003-8-31
状态 离线
『第 5 楼』:  

好方法啊!

2003-9-9 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
daiddcc
初级用户




积分 175
发帖 22
注册 2003-7-24
状态 离线
『第 6 楼』:  

非常感謝!原來以爲不會有什麽好方法了,看來我對批處理的了解還非常不夠。

2003-9-13 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: