中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 01:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [”急“]如何在批处理中判断系统当前日期等于某个日期? 查看 2,283 回复 12
楼 主 [”急“]如何在批处理中判断系统当前日期等于某个日期? 发表于 2004-05-17 00:00 ·  中国 重庆 中电华通
初级用户
积分 119
发帖 4
注册 2004-05-17 00:00
22年会员
UID 24543
性别 男
状态 离线
那位兄台知道,在批处理文件中判断当前计算机的系统日期是否等于某个日期字符串,如果等于,则运行某个文件或命令?静候佳音!我不希望用外来的工具!






2 发表于 2004-05-17 00:00 ·  中国 上海 鹏博士宽带
高级用户
★★
zhri
积分 665
发帖 153
注册 2004-02-23 00:00
22年会员
UID 18241
性别 男
状态 离线
办法是有的,但是......

还算可以。

具体的编写,我现在写不出了。

但是思路是这个。

不可能使用time和date命令,因为他们要求你输入新的来替换
我们可以建立一个目录(比如md aa),然后判断这个目录的建立日期是什么。

我想应该要用到这些个命令。

md
dir
more
find
>
|
if errorlevel=.......

.......

真不好意思......我忘了。
3 发表于 2004-05-18 00:00 ·  中国 重庆 中电华通
初级用户
积分 119
发帖 4
注册 2004-05-17 00:00
22年会员
UID 24543
性别 男
状态 离线
老大,麻繁你记起来好吗?
4 发表于 2004-05-18 00:00 ·  中国 上海 鹏博士宽带
高级用户
★★
zhri
积分 665
发帖 153
注册 2004-02-23 00:00
22年会员
UID 18241
性别 男
状态 离线
我实在想不起来了,老兄。

我只能告诉你思路。

首先,即时地建立一个目录(因为建立文件比建立目录麻烦),这时,DIR,就可以看到目录的建立日期。

然后,用if .....(判断字符串是否相等。。。。。。if有三种用法......其中的一种......)

然后用more,find,和dir,同时,用|(管道),》(重定向)把这三条命令写成一条,

主要是判断你刚才建立的这个目录的时期(用dir显示在屏幕上的),是不是和你if后面的字符串相等。。。。。。

。。。。。。

如果你能弄到本DOS手册就好办了。
5 发表于 2004-05-18 00:00 ·  中国 上海 鹏博士宽带
高级用户
★★
zhri
积分 665
发帖 153
注册 2004-02-23 00:00
22年会员
UID 18241
性别 男
状态 离线
http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=1292

也许能有点帮助。

实在想不起来了。
6 发表于 2004-05-21 00:00 ·  中国 辽宁 朝阳 联通
铂金会员
★★★★
痴迷DOS者
积分 5,798
发帖 1,924
注册 2003-06-20 00:00
23年会员
UID 5583
性别 男
来自 金獅電腦軟體工作室
状态 离线
不希望用外来的工具,就自己编写一个小程序,此问题用BASIC语言很容易实现的.
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
7 发表于 2004-05-21 00:00 ·  中国 辽宁 朝阳 联通
铂金会员
★★★★
痴迷DOS者
积分 5,798
发帖 1,924
注册 2003-06-20 00:00
23年会员
UID 5583
性别 男
来自 金獅電腦軟體工作室
状态 离线
具体的例程见BASIC程序提供的程序例子. MS-BASIC 7.1 版, QUICK BASIC 4.5 版都有相应的例子程序.
熟能生巧,巧能生精,一艺不精,终生无成,精亦求精,始有所成,臻于完美,永无止境!
金狮電腦軟體工作室愿竭诚为您服务!
QQ群:8393170(定期清理不发言者)
个人网站:http://www.520269.cn
电子邮件:doujiehui@vip.qq.com
微信公众号: doujiehui
8 发表于 2004-05-21 00:00 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re ztb888:

  此问题并不是很难,而且有相当多的解决方案,它们基于不同系统和不同需求,复杂度和技巧性也各有不同,真要详叙,可以上万字的篇幅。本站就有很多关于日期和时间的帖子,可以使用搜索功能大概浏览一下,了解各种方案,然后确定你的需求,将它告诉我们才能有的放矢的解决问题。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
9 发表于 2004-05-21 00:00 ·  中国 香港 有线电视
管理员
★★★★
專業島民
积分 4,869
发帖 1,633
注册 2002-12-10 00:00
23年会员
UID 465
性别 男
状态 离线
我出一個範例好了:

remind.bat
-----------------
@echo off
ver|date|find "05-21">%TEMP%\$$$temp1
copy %TEMP%\$$$temp1 %TEMP%\$$$temp2>NUL
if exist %TEMP%\$$$temp2 goto remind
goto end

:remind
echo --------------------------------
echo Today is important day!
echo --------------------------------

:end
del %TEMP%\$$$temp1
del %TEMP%\$$$temp2
我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
10 发表于 2004-05-22 00:00 ·  中国 重庆 南岸区 电信
初级用户
积分 257
发帖 38
注册 2004-05-20 00:00
22年会员
UID 24855
性别 男
状态 离线
我觉得斑竹说的方法很好,不过再简单点就好了,而且按照斑竹的意思,好象空文件难道就不能拷了吗?
MD $$$###
DIR $$$###|FIND "05-22">NUL
IF NOT ERRORLEVEL 1 GOTO TRY
::Today isn''t what you want
GOTO END
:TRY
::Today is the real day,Now you can do what you want to do
:END



11 发表于 2004-05-22 00:00 ·  中国 香港 有线电视
管理员
★★★★
專業島民
积分 4,869
发帖 1,633
注册 2002-12-10 00:00
23年会员
UID 465
性别 男
状态 离线
空文件就不能拷的呢
我的網站:http://mw16.2ya.com/ 我的網誌: http://scrappedblog.blogspot.com/
~
我的Winamp正在播放的歌曲:
12 发表于 2004-05-23 00:00 ·  中国 山西 太原 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re Roy:

  你所用的方法,似乎是在DOS低版本的FIND不产生ERRORLEVEL的时候研究出来的吧。现在用不着这样了,因为大多数人用的都是高版本,而且"空文件不拷贝"应该算是DOS未规范的细节,不知道那个版本就会被取消的。

  而且在本地化的或者未解决Y2K问题的DOS系统中,此程序存在着潜在的问题。比如,我想测知是否5月4日时,使用 ver|date|find "05-04">%TEMP%\$$$temp1 可能会
混淆 05年4月,04年5月以及4月5日等各种状态。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
13 发表于 2010-09-10 13:11 ·  中国 浙江 宁波 电信
新手上路
积分 18
发帖 12
注册 2010-09-01 15:18
15年会员
UID 173389
性别 男
来自 湖南益阳
状态 离线
@echo off
setlocal enabledelayedexpansion
set mm=%date:~5,2%
set dd=%date:~8,2%
if %mm% lss 10 set mm=%date:~6,1%
set /a od=!mm!-1
if !od! lss 10 set rq=0!od!
set cw=%date:~0,4%.!rq!
set /p a=请输入要查询片区名称(片区开头字母就行):
net use z: /delete
net use z: \\10.10.103.7\上传 wang /user:administrator
dir z:\月报\%cw% |find "%a%"
if %errorlevel%==0 goto abc
goto end
:abc
mshta vbscript:CreateObject("Wscript.Shell").popup("您所查询片区月报已交!",7,"系统提示!",64)(window.close)
exit
:end
mshta vbscript:CreateObject("Wscript.Shell").popup("您所查询片区月报未交,请督促完成!",7,"系统提示!",64)(window.close)
exit

我个人写的,希望有所帮助
论坛跳转: