中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 06:45
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何使用判断语句,求大家帮帮忙
可打印版本  930 / 7
第1楼 78586862 发表于 2007-04-20 02:26
初级用户 发帖 14 积分 25
如何使用判断语句,求大家帮帮忙
@echo off
if exist f:\555\0420.inf goto NO

我们知道 批处理中
if exist 是判断文件
f:\555\0420.inf 是F盘555文件夹里有没有0420.INF这个文档
goto NO 有就把批处理退出 没有就执行

比如:
@echo off
if exist f:\555\0420.inf goto NO
start/w Q:\0402\d.exe
start/w Q:\0402\e.exe
start/w Q:\0402\f.exe
@copy Q:\0402\0420.inf f:\555\

那么请问 怎么修改才可以 这样判断 :
我要求先判断F盘555文件夹里有没有0420.INF这个文档,没有的话就运行下面的程序Q:\0402\d.exe运行完以后,在判断有没有2.inf,没有的话就执行Q:\0402\e.exe,如果已经有了2.inf这个文档,那么就执行Q:\0402\f.exe这个程序,以此类推,直到所有的文件都已经执行完,然后退出.
我这样的想法主要是想当我批处理执行多个EXE的时候,突然重起,那么启动完后还可以接着运行前面没有运行过的文件或者操作,因为每运行一次就生成一个判断文件,如果运行时发现已经了那个判断文件,就跳过,然后执行下一个....哎 显得好罗嗦,都不知道你们看得懂吗, 总的一句话就是:
开机就判断 F盘555文件夹里有没有0420.INF这个文档,有就不执行,直接退出,如果没有 那么就运行Q:\0402\d.exe 运行完以后在判断有没有001.INF这个文档没有运行Q:\0402\e.exe,有的话就判断有没有002.inf这个文档,没有就运行Q:\0402\f.exe,有的话就判断有没有003.inf这个文档,没有就运行Q:\0402\g.exe
就这样........直到全部判断完了就退出.
哎 ~ 怎么看 还是那么罗嗦..................
第2楼 0451lym 发表于 2007-04-20 02:41
高级用户 发帖 357 积分 760
第3楼 lianjiang2004 发表于 2007-04-20 02:51
金牌会员 发帖 1,884 积分 3,946
描述不清。
“在判断有没有2.inf,没有的话就执行Q:\0402\e.exe,如果已经有了2.inf这个文档,那么就执行Q:\0402\f.exe这个程序,”

“如果没有 那么就运行Q:\0402\d.exe 运行完以后在判断有没有001.INF这个文档没有运行Q:\0402\e.exe,有的话就判断有没有002.inf这个文档,没有就运行Q:\0402\f.exe,有”

是矛盾的。
不知想干嘛,如何判断。
第4楼 lianjiang2004 发表于 2007-04-20 03:04
金牌会员 发帖 1,884 积分 3,946
不知这样行否?
---------------
if not exist f:\555\0420.inf ( start/w Q:\0402\d.exe ) else goto NO
if not exist f:\555\001.inf start/w Q:\0402\e.exe && copy Q:\0402\001.inf f:\555\
if not exist f:\555\002.inf start/w Q:\0402\f.exe && copy Q:\0402\002.inf f:\555\
if not exist f:\555\003.inf start/w Q:\0402\g.exe && copy Q:\0402\003.inf f:\555\
copy Q:\0402\0420.inf f:\555\

:no
第5楼 htysm 发表于 2007-04-20 04:31
高级用户 发帖 415 积分 866
请问楼主,你到底有多少个*.exe?
第6楼 78586862 发表于 2007-04-20 07:12
初级用户 发帖 14 积分 25
Originally posted by lianjiang2004 at 2007-4-20 02:51 AM:
描述不清。
“在判断有没有2.inf,没有的话就执行Q:\0402\e.exe,如果已经有了2.inf这个文档,那么就执行Q:\0402\f.exe这个程序,”

“如果没有 那么就运行Q ...



成了,又学会了一招,呵呵 我这个主要是用于自己批处理那些机子更新游戏以后 ,不用在重复更新:D 谢谢 lianjiang2004在位朋友。
第7楼 78586862 发表于 2007-04-20 07:13
初级用户 发帖 14 积分 25
请问楼主,你到底有多少个*.exe?


不限制,只是要个语法

[ Last edited by 78586862 on 2007-4-20 at 07:14 AM ]
第8楼 BWSkyer 发表于 2007-04-20 22:56
中级用户 发帖 180 积分 367 来自 重庆
Originally posted by lianjiang2004 at 03:04:
不知这样行否?
---------------
if not exist f:\555\0420.inf ( start/w Q:\0402\d.exe ) else goto NO
if not exist f:\555\001.inf start/w Q:\0402\e.exe &&am ...


補充一下;) 4樓的else用法是錯的..

ELSE 子句必須出現在 IF 之後的同一行。
例如:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)

以下命令無法作用,因為 del 命令必須以換行字元來
結尾:

IF EXIST filename. del filename. ELSE echo filename. missing

下面命令也無法作用,因為 ELSE 命令必須在與 IF 命令同一行
的結尾:

IF EXIST filename. del filename.
ELSE echo filename. missing

下面命令只有在寫成一行時才能作用:

IF EXIST filename. (del filename.) ELSE echo filename. missing
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023