中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 15:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样获得昨天的日期并赋值给一个变量 查看 1,083 回复 5
楼 主 怎样获得昨天的日期并赋值给一个变量 发表于 2007-08-14 16:41 ·  中国 广东 云浮 电信
初级用户
积分 185
发帖 23
注册 2005-02-27 00:00
21年会员
UID 36537
性别 男
状态 离线
我需要获得昨天的日期,并把这个日期赋给一个变量。
如果今天是2007-08-01,那么昨天的日期2007-07-31怎么获得呢?

要考虑一个月中不同天数,还有闰年的情况。
2 发表于 2007-08-14 21:40 ·  中国 浙江 温州 电信
中级用户
★★
积分 458
发帖 196
注册 2006-10-05 12:04
19年会员
UID 64614
状态 离线
vbs中有个dateadd函数很方便
3 发表于 2007-08-15 14:17 ·  中国 广东 云浮 电信
初级用户
积分 185
发帖 23
注册 2005-02-27 00:00
21年会员
UID 36537
性别 男
状态 离线
在论坛上找到输出N天前日期的批处理,稍微改变一下,下面代码中的 date_ 就是昨天的日期

@echo off
setlocal enabledelayedexpansion
:Main
:: 日期可以带星期,但是,必须以年月日的顺序排列
:: 年份必须是四位,否则会出错
set day=%date%
set days=0
echo.&echo.
::echo 指定的日期是:%day%
set input=1

:: 提取日期
for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
)

set /a sd-=input
if %sd% leq 0 call :count

set sm=0%sm%
set sd=0%sd%
set date_=%sy%-%sm:~-2%-%sd:~-2%
echo.
echo 正在备份 %date_% 的ALOG文件
echo.
for /f "tokens=1,2,4*" %%a in ('dir /a-d/od/tc "%d_%" ^| find "%date_%"') do if %%b geq 00:00:00 if not %%b geq 23:59:59 copy %%c d:\test\

echo.
pause

:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof

:days
:: 获取指定月份的总天数
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
set num=0
set str=31 %max% 31 30 31 30 31 31 30 31 30 31
for %%i in (%str%) do (
set /a num+=1
if %sm% equ !num! set days=%%i&goto :eof
)
goto :eof
4 发表于 2007-08-15 14:24 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
自己找到,还修改了。

是否比别人直接给的要有荣耀感?

[ Last edited by wudixin96 on 2007-8-15 at 02:31 PM ]
5 发表于 2007-08-15 17:11 ·  中国 广东 云浮 电信
初级用户
积分 185
发帖 23
注册 2005-02-27 00:00
21年会员
UID 36537
性别 男
状态 离线
Originally posted by wudixin96 at 2007-8-15 02:24 PM:
自己找到,还修改了。

是否比别人直接给的要有荣耀感?

[ Last edited by wudixin96 on 2007-8-15 at 02:31 PM ]


这种感觉实在不明显,总觉得批处理不太好用,语法有点古怪。只是每次要用,不想编程才想起会不会用批处理会简单一点。如果有一种简单易用的,和系统又结合的好的语言,我想我不会用它的。
6 发表于 2007-08-15 19:46 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
和系统又结合的好的就是VBS了,比批处理简单好多,而且可以和批处理配合得很好
论坛跳转: