中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 17:14
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样精简这段命令?
可打印版本  827 / 9
第1楼 icevan 发表于 2008-03-06 18:09
初级用户 发帖 12 积分 67
怎样精简这段命令?
IF EXIST x:\filename1 goto 1
ECHO 没有文件
pecmd.exe wait 4000
goto 1

:1
start pecmd.exe load x:\filename1

就是判断一个文件有没有。没有的话给出提示并暂停一会在
继续执行下面的.上面的我感觉比较烦琐。希望能用一句就
实现。

谢谢咯。
第2楼 icevan 发表于 2008-03-06 18:15
初级用户 发帖 12 积分 67
我尝试这样写不知道对吗?
if not exist x:\filename1 echo 没有文件 & pecmd.exe wait 4000
start pecmd.exe load x:\filename2

因为用pecmd.exe来暂停一段时间后面要跟几个参数。
所以不知道有什么要注意的地方。。

[ Last edited by icevan on 2008-3-6 at 06:21 PM ]
第3楼 fastslz 发表于 2008-03-06 19:43
铂金会员 发帖 2,315 积分 5,493 来自 上海

未测试
第4楼 icevan 发表于 2008-03-06 22:08
初级用户 发帖 12 积分 67
测试了下
用DIR检查到不存在的盘符时会有提示 系统找不到指定的路径
用IF没有提示.这样可以吗?有什么要注意的吗?
if exist x:\filename1 start pecmd.exe load x:\filename2 ||echo 没有文件 &pecmd.exe wait 4000&&start pecmd.exe load x:\filename2

或者
if not exist x:\filename1 echo 没有文件 &pecmd.exe wait 4000&&start pecmd.exe load x:\filename2 ||start pecmd.exe load x:\filename2
第5楼 icevan 发表于 2008-03-08 19:40
初级用户 发帖 12 积分 67
Originally posted by fastslz at 2008-3-6 19:43:

未测试


谢谢你了..开阔了思路.原来不只IF可以用来做判断...
第6楼 fastslz 发表于 2008-03-08 20:57
铂金会员 发帖 2,315 积分 5,493 来自 上海
再开阔点思路



第7楼 fastslz 发表于 2008-03-08 21:17
铂金会员 发帖 2,315 积分 5,493 来自 上海
哦、忘了提醒,要象if exist那样没有提示,这样就可以了
dir /adhr D:\xxx.txt>nul 2>nul||echo D盘没有包含隐藏只读的 xxx.txt 文件夹
第8楼 icevan 发表于 2008-03-09 04:19
初级用户 发帖 12 积分 67
谢谢指点.
dir x:\filename1/a ||echo 没有文件 &pecmd.exe wait 4000&&start pecmd.exe load x:\filename2
这样是不是就不会因为文件属性的原因造成判断出错了.
第9楼 lee928 发表于 2008-03-09 21:08
初级用户 发帖 14 积分 36
||是用来表示如果之前的语句执行失败就继续下面的语句是吗?
第10楼 lxmxn 发表于 2008-03-09 22:06
版主 发帖 4,938 积分 11,386
Originally posted by lee928 at 2008-3-9 21:08:
||是用来表示如果之前的语句执行失败就继续下面的语句是吗?

CMD/DOS下符号的作用参考
http://www.cn-dos.net/forum/viewthread.php?tid=30985
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023