Board logo

标题: 在bat中进行日期比较时,不执行 [打印本页]

作者: whj0431     时间: 2008-1-9 00:16    标题: 在bat中进行日期比较时,不执行

@echo off
date/t > %ddate%
echo %ddate%
if /i %ddate% lss "2008-03-31 星期二 " (
   spant.exe
) else (
   oemdiy.exe
)

程序一闪就过去了,没有执行spant.exe 或oemdiy.exe 这是为什么?
作者: zh159     时间: 2008-1-9 00:37

@echo off
set ddate=%date:~0,10%
set ddate==%ddate:-=%
if /i %date% lss "20080331" (
   spant.exe
) else (
   oemdiy.exe
)

作者: whj0431     时间: 2008-1-9 23:39
谢谢,用你的代码,稍作修正已经运行成功了,

@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 ]
作者: zh159     时间: 2008-1-10 03:14
set ddate=%ddate:-=%
不好意思,多了一个等号
作者: whj0431     时间: 2008-1-10 19:16
在学习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窗口只是一闪而过,为什么呢?
作者: zh159     时间: 2008-1-10 19:29
忘了多了对双引号,文件的路径要对
@echo off
set ddate=%date:~0,10%
set ddate=%ddate:-=%
if %ddate% lss 20080331 (
   echo spant.exe
) else (
   echo oemdiy.exe
)
pause