![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-17 23:41 |
共 47,814 主题排行 / 349,907 发帖 / 今日 4 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 批处理中的计算问题 |
| 可打印版本 805 / 4 |
| 第1楼 willhot2 | 发表于 2006-03-06 20:52 |
| 新手上路 发帖 2 积分 8 | |
|
批处理中的计算问题 大家好,因为自身水平很低,想问一个可能很简单的问题。
怎么样能在批处理中实现计算的功能? 我知道用%date%可以获得当前系统的日期,如果我想得到昨天的日期,该怎么写? 如果我想用今天的日期减1,有没有类似SUM的函数?? 谢谢大家。 |
|
| 第2楼 3742668 | 发表于 2006-03-07 00:01 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
@echo off
echo 今天的日期是 %date:~0,10% set /a num = %date:~8,2% set /a num = %num% - 1 if %num% LSS 10 set num=0%num% echo 昨天的日期是 %date:~0,8%%num% pause>nul 至于特殊情况(今天01号的话)的问题就自己去解决了. |
|
| 第3楼 willhot2 | 发表于 2006-03-08 15:49 |
| 新手上路 发帖 2 积分 8 | |
|
谢谢3742668帮忙
但是我试了一下,好像不行。可不可以解释一下每行参数的意思。 |
|
| 第4楼 willsort | 发表于 2006-03-08 19:57 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re willhot2:
出现问题的原因,应该是你所处的系统日期格式与 3742668 兄的有所差异,包括星期的出现位置,星期所使用的语言,以及日期是否有零前缀。这些细微的差别导致了2楼程序以及许多与日期有关的批处理存在相当多的兼容性问题。 你可以将 echo %date% 的结果贴上来,可以根据你的具体情况对程序进行细微的调整。更通用且完善的算法也存在,不过实现起来会更加复杂,或者使用第三方工具 GNU date 也是一个不错的选择,在本区就有链接。 另外,解答室已经由不少对日期进行分析和计算的主题,可以深入的搜索一下。 |
|
| 第5楼 3742668 | 发表于 2006-03-08 22:00 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
也许是系统环境不一样吧
那个东东我测试可以用才贴上来的 不过我平时喜欢改我自己的系统 一些环境设置我自己都有点记不大清楚了,呵呵 建议你打开windows帮助看看set命令的用法。 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |