中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 05:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在bat中进行日期比较时,不执行 查看 860 回复 5
楼 主 在bat中进行日期比较时,不执行 发表于 2008-01-09 00:16 ·  中国 辽宁 本溪 联通
新手上路
积分 12
发帖 5
注册 2007-12-07 15:09
18年会员
UID 104981
性别 男
状态 离线
@echo off
date/t > %ddate%
echo %ddate%
if /i %ddate% lss "2008-03-31 星期二 " (
spant.exe
) else (
oemdiy.exe
)

程序一闪就过去了,没有执行spant.exe 或oemdiy.exe 这是为什么?
2 发表于 2008-01-09 00:37 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
@echo off
set ddate=%date:~0,10%
set ddate==%ddate:-=%
if /i %date% lss "20080331" (
spant.exe
) else (
oemdiy.exe
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
whj0431 +1 2008-01-10 19:18
3 发表于 2008-01-09 23:39 ·  中国 辽宁 本溪 联通
新手上路
积分 12
发帖 5
注册 2007-12-07 15:09
18年会员
UID 104981
性别 男
状态 离线
谢谢,用你的代码,稍作修正已经运行成功了,

@echo off
set ddate=%date:~0,10%
set ddate==%ddate:-=% 这里不明白,能否解释一下?
if /i %ddate% lss "20080331" ( 把%date%改为%ddate%
spant.exe
) else (
oemdiy.exe
)

[ Last edited by whj0431 on 2008-1-9 at 11:44 PM ]
4 发表于 2008-01-10 03:14 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
set ddate=%ddate:-=%
不好意思,多了一个等号
5 发表于 2008-01-10 19:16 ·  中国 辽宁 本溪 联通
新手上路
积分 12
发帖 5
注册 2007-12-07 15:09
18年会员
UID 104981
性别 男
状态 离线
在学习p的过程中,遇到不少问题,就这个时间判断问题困扰我很长时间。
还是上面的代码:
@echo off
set ddate=%date:~0,10%
set ddate=%ddate:-=%
if /i %ddate% lss "20080331" (
spant.exe
) else (
oemdiy.exe
)

xp sp2系统,如果当前时间是20080110,那么应该运行spant.exe
将时间改为20090110,应该运行oemdiy.exe
但是cmd窗口只是一闪而过,为什么呢?
6 发表于 2008-01-10 19:29 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
忘了多了对双引号,文件的路径要对
@echo off
set ddate=%date:~0,10%
set ddate=%ddate:-=%
if %ddate% lss 20080331 (
echo spant.exe
) else (
echo oemdiy.exe
)
pause
论坛跳转: