![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-28 19:40 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,277 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]取前一天的日期的bat脚本 |
| 可打印版本 3,364 / 10 |
| 第1楼 mayining | 发表于 2008-01-17 10:57 |
| 新手上路 发帖 2 积分 6 | |
|
[原创]取前一天的日期的bat脚本 这个是我前些日子刚写的bat中的一部分, 这是我第一次写bat脚本, 那段日子成天泡在联盟中学习bat的知识, 非常感谢联盟的兄弟们!
由于批处理脚本在自动上传文件中使用的非常广泛, 取前一天的日期是完成该任务大多会碰到的问题, 所以把代码贴在这里供像我一样的新手参考. 我的方法有一点取巧之嫌: 如果当天是1号, 那么需要处理月(也许有年), 然后列举前一月最后一天的日, 比如10月就一定是31天, 但是2月就要特殊处理, 需要计算是否为闰年, 具体的计算方法可以在我的代码中看到, 这个想必难不倒大家, 最后将日期一拼就是前一天的日期啦. 希望大家有更好的方法把代码贴出来分享一下:) |
|
| 第2楼 daker | 发表于 2008-01-17 12:27 |
| 初级用户 发帖 17 积分 34 | |
|
为什么不用for /l ???
|
|
| 第3楼 honghunter | 发表于 2008-01-17 13:06 |
| 中级用户 发帖 135 积分 321 | |
|
支持一下,谢谢分享。
|
|
| 第4楼 daker | 发表于 2008-01-17 14:39 |
| 初级用户 发帖 17 积分 34 | |
|
俺用FOR /L给你改了下 权当自己练习~~~~应该简练一些~~
|
|
| 第5楼 HAT | 发表于 2008-01-17 15:14 |
| 版主 发帖 5,017 积分 9,023 | |
| 第6楼 mayining | 发表于 2008-01-17 16:30 |
| 新手上路 发帖 2 积分 6 | |
|
回复 恩, daker兄弟你的代码我认真阅读了, 确实比我的要简练多了, 当时没有考虑到用for /l 就能解决已知定长字符串的问题, 很感谢!
HAT兄弟的代码我也看了, 比我的功能要强大, 而且解法2,3以日期的数学本质去处理, 感觉专业多了, 我想当我有可的时候, 写一个脚本日历程序, 这样就可以根本解决bat中date函数的缺陷了, 不知道是不是已经有人做了呢? 好啦, 结贴, 再次感谢大家 |
|
| 第7楼 fzp1978321 | 发表于 2008-03-06 12:03 |
| 初级用户 发帖 50 积分 110 | |
|
那如何在WIN2000下获取前一天的日期呢?
这些都是XP环境下的. |
|
| 第8楼 xaleibin | 发表于 2008-10-01 04:52 |
| 新手上路 发帖 2 积分 4 | |
|
少一行代码 应该在批处理文件的前面加入一行
setlocal enabledelayedexpansion 表示启用变量延迟,否则这个程序不行正常执行,我已试过。 最后感谢你的分亨,帮我解决了问题。 |
|
| 第9楼 xaleibin | 发表于 2008-10-01 04:54 |
| 新手上路 发帖 2 积分 4 | |
|
补充 只有启用了变量延迟,才能用!!将变量名扩起来表示对变量值的引用。
|
|
| 第10楼 yanglei | 发表于 2009-11-05 22:26 |
| 新手上路 发帖 4 积分 7 | |
|
如果有数据库连接的话,可以从数据库里取sysdate-1,然后写到一个文件中,再从文件中将前一天的日期取出即可,,,前提 要能连数据库 嘎嘎
|
|
| 第11楼 hbby | 发表于 2009-12-16 15:51 |
| 中级用户 发帖 99 积分 220 | |
|
@echo off
echo Wscript.echo dateadd("d",-1,date)>vbs.vbs for /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&echo %%a |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |