中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 23:51
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [”急“]如何在批处理中判断系统当前日期等于某个日期?
可打印版本  2,282 / 12
第1楼 ztb888 发表于 2004-05-17 00:00
初级用户 发帖 4 积分 119
[”急“]如何在批处理中判断系统当前日期等于某个日期?
那位兄台知道,在批处理文件中判断当前计算机的系统日期是否等于某个日期字符串,如果等于,则运行某个文件或命令?静候佳音!我不希望用外来的工具!






第2楼 zhri 发表于 2004-05-17 00:00
高级用户 发帖 153 积分 665
办法是有的,但是......

还算可以。

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

但是思路是这个。

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

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

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

.......

真不好意思......我忘了。
第3楼 ztb888 发表于 2004-05-18 00:00
初级用户 发帖 4 积分 119
老大,麻繁你记起来好吗?
第4楼 zhri 发表于 2004-05-18 00:00
高级用户 发帖 153 积分 665
我实在想不起来了,老兄。

我只能告诉你思路。

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

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

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

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

。。。。。。

如果你能弄到本DOS手册就好办了。
第5楼 zhri 发表于 2004-05-18 00:00
高级用户 发帖 153 积分 665
http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=1292

也许能有点帮助。

实在想不起来了。
第6楼 Kinglion 发表于 2004-05-21 00:00
铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室
不希望用外来的工具,就自己编写一个小程序,此问题用BASIC语言很容易实现的.
第7楼 Kinglion 发表于 2004-05-21 00:00
铂金会员 发帖 1,924 积分 5,798 来自 金獅電腦軟體工作室
具体的例程见BASIC程序提供的程序例子. MS-BASIC 7.1 版, QUICK BASIC 4.5 版都有相应的例子程序.
第8楼 willsort 发表于 2004-05-21 00:00
元老会员 发帖 1,512 积分 4,432
Re ztb888:

  此问题并不是很难,而且有相当多的解决方案,它们基于不同系统和不同需求,复杂度和技巧性也各有不同,真要详叙,可以上万字的篇幅。本站就有很多关于日期和时间的帖子,可以使用搜索功能大概浏览一下,了解各种方案,然后确定你的需求,将它告诉我们才能有的放矢的解决问题。
第9楼 Roy 发表于 2004-05-21 00:00
管理员 发帖 1,633 积分 4,869
我出一個範例好了:

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
第10楼 SagInvoker 发表于 2004-05-22 00:00
初级用户 发帖 38 积分 257
我觉得斑竹说的方法很好,不过再简单点就好了,而且按照斑竹的意思,好象空文件难道就不能拷了吗?
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楼 Roy 发表于 2004-05-22 00:00
管理员 发帖 1,633 积分 4,869
空文件就不能拷的呢
第12楼 willsort 发表于 2004-05-23 00:00
元老会员 发帖 1,512 积分 4,432
Re Roy:

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

  而且在本地化的或者未解决Y2K问题的DOS系统中,此程序存在着潜在的问题。比如,我想测知是否5月4日时,使用 ver|date|find "05-04">%TEMP%\$$$temp1 可能会
混淆 05年4月,04年5月以及4月5日等各种状态。
第13楼 yadngah1984 发表于 2010-09-10 13:11
新手上路 发帖 12 积分 18 来自 湖南益阳
@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

我个人写的,希望有所帮助
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023