中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 我的一个批处理文件。为何不对,请指点。
作者:
标题: 我的一个批处理文件。为何不对,请指点。 上一主题 | 下一主题
骨灰龙
中级用户




积分 206
发帖 22
注册 2004-2-5
状态 离线
『楼 主』:  我的一个批处理文件。为何不对,请指点。

@echo off if %date% == "2002.1.1" goto del :del deltree %temp%\*.* :end exit 我想判断当前日期,如果是则删除临时文件。如果不是就退出,但为什么直接就进行删除命令。


2004-2-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 2 楼』:  

if not %date% == "2002.1.1" goto end




一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2004-2-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
allul*
高级用户




积分 612
发帖 167
注册 2003-12-1
状态 离线
『第 3 楼』:  

请问楼上的,你这句是加在 if %date% == "2002.1.1" goto del 下面还是把它改成你写的这样?




别问我是谁.
2004-2-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Kinglion
铂金会员

痴迷DOS者


积分 5798
发帖 1924
注册 2003-6-20
来自 金獅電腦軟體工作室
状态 离线
『第 4 楼』:  

您的日期书写格式不对,应该是“XXXX-XX-XX 星期X”格式(在XP系统里),另外,%DATE%变量在DRDOS里无效




熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境! 金狮電腦軟體工作室愿竭诚为您服务! QQ群:8393170(定期清理不发言者) 个人网站:www.520269.cn 电子邮件:doujiehui@vip.qq.com 微信公众号: doujiehui
2004-2-12 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (79207959)  编辑帖子  回复  引用回复
骨灰龙
中级用户




积分 206
发帖 22
注册 2004-2-5
状态 离线
『第 5 楼』:  

楼上那位。 我照你说的做了,不行,提示“此时不该有星期X” 为何?


2004-2-12 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xiaojun
银牌会员





积分 2202
发帖 499
注册 2003-6-12
状态 离线
『第 6 楼』:  

以下是引用allul*在2004-2-12 10:30:34的发言: 请问楼上的,你这句是加在 if %date% == "2002.1.1" goto del  下面还是把它改成你写的这样?
只要满足你给出的条件就Goto... 你可以IF NOT %DATE%=="2002.1.1" EXIT 看什么结果...




一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
2004-2-14 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


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

Re 骨灰龙: 你没有指出你所使用的系统和环境,而我对NT系列环境也很陌生,所以无从判定你的日期格式对错与否。只能就以下问题进行答复: @echo off if %date% == "2002.1.1" goto del rem 如xiaojun所说,在这里跳转语句的使用是有问题的。 rem 因为根据你的语句,无论条件是否成立,都会直接执行下面的del模块。 rem 所以才会不论条件直接执行deltree。 rem 而你的%date%=="2002.1.1" 用的似乎也有问题。 rem 除非原date变量的值中包含引号,否则你这种只给后值加引号的做法是错误的。 rem 而应改作"%date%"=="2002.1.1"。 rem 另外,data变量并非在所有环境中都直接由系统提供,如在98中就需要手动获取。 :del deltree %temp%\*.* :end exit




※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2004-2-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
骨灰龙
中级用户




积分 206
发帖 22
注册 2004-2-5
状态 离线
『第 8 楼』:  

感谢各位。 RE:WILLSORT 我使用的是WIN2003SERVER。可能是系统的原因,照各位的提示做了改动,但还是没有成功,老有错误提示。提示“此时不该有星期X==2001.1.1”


2004-2-16 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


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

Re 骨灰龙: 我找到一台win2000的机器做了实验,其日期格式为“星期三 2004-04-14”,根据此格式确定以下程序,运行通过。如果是其他平台,请根据日期格式修改其中内容。关键的纠正在IF语句上,有以下几点: 1,等号前后的串都需加上引号保护,因为后面的串中有空格; 2,日期必须严格符合系统的格式,也就是需要加上星期,位置也必须固定; 3,GOTO DEL 改为否定的情况下GOTO END; 4,DELTREE 加上 /Y 的不需确认开关
@echo off if not "%date%" == "星期三 2004-04-14" goto end :del deltree /y %temp%\*.* :end exit




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

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


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



论坛跳转: