中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 在98或2000中如何在批文件中取得系统前一天的日期呀?
作者:
标题: 在98或2000中如何在批文件中取得系统前一天的日期呀? 上一主题 | 下一主题
xolbm
新手上路





积分 8
发帖 2
注册 2005-12-17
状态 离线
『楼 主』:  在98或2000中如何在批文件中取得系统前一天的日期呀?

在98或2000中,比如现在系统时间是20051218,哪如何在批文件中取得系统前一天的日期20051217呀?

2005-12-18 21:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 2 楼』:  

你这个问题超级复杂,需要考虑当前日期是否是1号,如果是还要考虑上月有多少天,是闰年还是平年。给你2000下一个获取日期的实例,自己尝试完善吧!

  Quote:

  1. ::获取日期
  2. rem 请自行完善吧
  3. @echo off
  4. for /f "tokens=1,2,3 delims=-/. " %%a in ('date /t') do (
  5.         set A=%%a
  6.         set B=%%b
  7.         set C=%%c
  8. )
  9. rem set /a C-=1
  10. echo %A%%B%%C%
        -=代码着色  BY:无奈何=-





  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2005-12-19 21:51
查看资料  发送邮件  发短消息 网志  OICQ (105400208)  编辑帖子  回复  引用回复
tigerpower
中级用户

大师兄


积分 377
发帖 99
注册 2005-8-26
状态 离线
『第 3 楼』:  

使用GNU date:

.\date -d "-1 day" "+%Y%m%d"

附件 1: date.zip (2005-12-19 22:38, 18.99 K, 下载附件所需积分 1 点 ,下载次数: 69)
2005-12-19 22:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 4 楼』:  

Re xolbm:

      这个问题在不同平台下有不同解答。

      在 2000 的 cmd 下,可以将日期换算为距离以前某个日期的相对值,然后对这个值进行运算后,再换算为新日期即可。

      在 98 的 command 下,可以使用标记法,即每日运行程序时,标记今日日期,并从前一次标记中取昨日日期。但这种算法要求每日至少运行一次程序。

      更通用的方法是使用第三方命令行程序,比如date等,但因此失去了批处理程序脚本程序的特色。

      因为这个主题曾经讨论过多次,因此以上方案的代码和程序均可以在以前的旧帖中找到,比如以下链接,所以请善用搜索功能:

  (已结)如果在WINDOWS下DOS命令行删除N天以前的文件
http://www.cn-dos.net/forum/viewthread.php?tid=16676



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-12-19 22:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by tigerpower at 2005-12-19 22:38:
使用GNU date:

.\date -d "-1 day" "+%Y%m%d"

哈哈,换个工具简单许多,UNIX 下的小工具确实够强。



  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2005-12-19 23:00
查看资料  发送邮件  发短消息 网志  OICQ (105400208)  编辑帖子  回复  引用回复
xolbm
新手上路





积分 8
发帖 2
注册 2005-12-17
状态 离线
『第 6 楼』:  

谢谢各位老师的指教!看来要采用批处理程序完成系统时间的加减对我这样的菜鸟是很有困难的了!
  再次谢谢各位老师的指教!!

2005-12-20 19:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
LiveOnLove
中级用户




积分 493
发帖 161
注册 2002-10-29
来自 ZHCN
状态 离线
『第 7 楼』:  

对啊。上面的批命令我都看晕了。不如直接写个小程序方便。HOHO

2005-12-20 19:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wynpu
新手上路





积分 6
发帖 3
注册 2007-4-30
状态 离线
『第 8 楼』:  

太好了,试一试先

2007-4-30 06:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: