![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 01:34 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 怎么判断在批处理中程序是否已经运行? |
| 可打印版本 1,178 / 5 |
| 第1楼 daiddcc | 发表于 2003-09-02 00:00 |
| 初级用户 发帖 22 积分 175 | |
|
怎么判断在批处理中程序是否已经运行? 想编一批处理。 带几个参数, 其中有几个是单独项,另几个必须是在ucdos运行后再运行的。 这样会产生一个问题,如果将
\ucdos\rd16 \ucdos\knl 放在前面,那么不需要运行ucdos的那几项也必须得在运行ucdos后再运行,很讨厌。如果ucdos不放在前面,那几个必须运行在ucdos下的程序就得每项都加上\ucdos\rd16 ; \ucdos\knl 。有些重复和累赘。而且这几项就会重复运行ucdos,即管ucdos运行一次就够了。 有什么好办法来解决么? 可不可以在处理中作一判断,判断ucdos是否已运行? |
|
| 第2楼 红色狂想 | 发表于 2003-09-03 00:00 |
| 金牌会员 发帖 1,501 积分 4,289 来自 河南省 | |
|
虽然我对批处理不太行,但我可以给你一些编程的思路。你可以在执行时产生临时文件做为标记呀,然后再在需要处理的地方做条件判断,以便执行不同的操作。
|
|
| 第3楼 willsort | 发表于 2003-09-06 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
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卸载标签 |
|
| 第4楼 cn_archer | 发表于 2003-09-06 00:00 |
| 元老会员 发帖 991 积分 2,903 来自 福建省 | |
|
楼上的方法很实用啊!
|
|
| 第5楼 congcong | 发表于 2003-09-09 00:00 |
| 初级用户 发帖 3 积分 112 | |
|
好方法啊!
|
|
| 第6楼 daiddcc | 发表于 2003-09-13 00:00 |
| 初级用户 发帖 22 积分 175 | |
|
非常感謝!原來以爲不會有什麽好方法了,看來我對批處理的了解還非常不夠。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |