楼 主
我的一个批处理文件。为何不对,请指点。
发表于 2004-02-11 00:00 · 中国 山西 太原 联通
中级用户
★
积分 206 发帖 22 注册 2004-02-05 00:00 UID 16772 性别 男
状态 离线
@echo off
if %date% == "2002.1.1" goto del
:del
deltree %temp%\*.*
:end
exit
我想判断当前日期,如果是则删除临时文件。如果不是就退出,但为什么直接就进行删除命令。
第 2 楼
发表于 2004-02-12 00:00 · 中国 重庆 电信
银牌会员
★★★
积分 2,202 发帖 499 注册 2003-06-12 00:00 UID 4876 性别 男
状态 离线
if not %date% == "2002.1.1" goto end
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
第 3 楼
发表于 2004-02-12 00:00 · 中国 辽宁 沈阳 中移铁通
高级用户
★★
积分 612 发帖 167 注册 2003-12-01 00:00 UID 13615 性别 女
状态 离线
请问楼上的,你这句是加在
if %date% == "2002.1.1" goto del 下面还是把它改成你写的这样?
别问我是谁.
第 4 楼
发表于 2004-02-12 00:00 · 中国 辽宁 沈阳 联通
铂金会员
★★★★
痴迷DOS者
积分 5,798 发帖 1,924 注册 2003-06-20 00:00 UID 5583 性别 男 来自 金獅電腦軟體工作室
状态 离线
您的日期书写格式不对,应该是“XXXX-XX-XX 星期X”格式(在XP系统里),另外,%DATE%变量在DRDOS里无效
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:
http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
第 5 楼
发表于 2004-02-12 00:00 · 中国 山西 太原 联通
中级用户
★
积分 206 发帖 22 注册 2004-02-05 00:00 UID 16772 性别 男
状态 离线
楼上那位。
我照你说的做了,不行,提示“此时不该有星期X”
为何?
第 6 楼
发表于 2004-02-14 00:00 · 中国 重庆 电信
银牌会员
★★★
积分 2,202 发帖 499 注册 2003-06-12 00:00 UID 4876 性别 男
状态 离线
以下是引用allul*在2004-2-12 10:30:34 的发言:
请问楼上的,你这句是加在
if %date% == "2002.1.1" goto del 下面还是把它改成你写的这样?
只要满足你给出的条件就Goto...
你可以IF NOT %DATE%=="2002.1.1" EXIT 看什么结果...
一年四季,枫叶红了又红;人生四季,失去的,还能再来吗?—— !
第 7 楼
发表于 2004-02-16 00:00 · 中国 河北 石家庄 联通
元老会员
★★★★
Batchinger
积分 4,432 发帖 1,512 注册 2002-10-18 00:00 UID 19 性别 男
状态 离线
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:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
第 8 楼
发表于 2004-02-16 00:00 · 中国 山西 太原 联通
中级用户
★
积分 206 发帖 22 注册 2004-02-05 00:00 UID 16772 性别 男
状态 离线
感谢各位。
RE:WILLSORT
我使用的是WIN2003SERVER。可能是系统的原因,照各位的提示做了改动,但还是没有成功,老有错误提示。提示“此时不该有星期X==2001.1.1”
第 9 楼
发表于 2004-04-14 00:00 · 中国 山西 运城 联通
元老会员
★★★★
Batchinger
积分 4,432 发帖 1,512 注册 2002-10-18 00:00 UID 19 性别 男
状态 离线
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:请访问
批处理编程的异类 ,欢迎交流与共享批处理编程心得!
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正