D n f win10进不去游戏

文章 - 29&
&&&&&&&&&&&
============================取前一天的日期&&&&&& OK============================@echo off
::前一天的日期,格式化输出echo ----代码开始----------
echo Wscript.echo dateadd("d",-1,date)&vbs.vbsfor /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&set yyyymmdd=%%afor /f "tokens=1,2,3* delims=// " %%i in ('echo %yyyymmdd%') do set yyyy=%%i&set mm=%%j&set dd=%%kif&& %mm%&& LSS&& 9&& set&& mm=0%mm%if&& %dd%&& LSS&& 9&& set&& dd=0%dd%echo %yyyy%++++%mm%++++%dd%
echo -----代码结束---------
::取前一天的日期echo Wscript.echo dateadd("d",-1,date)&vbs.vbsfor /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&echo %%a
::当天日期echo %date:~0,4%%date:~5,2%%date:~8,2%
::如果日期是 - 分割,如for /f "tokens=1,2,3* delims=- " %%i in ('date /t') do @echo %%i%%j%%k::如果日期是 / 分割,如for /f "tokens=1,2,3* delims=// " %%i in ('date /t') do @echo %%i%%j%%k
::当天日期,格式化输出for /f "tokens=1,2,3* delims=// " %%i in ('date /t') do set yyyy=%%i&set mm=%%j&set dd=%%kecho %yyyy%++++%mm%++++%dd%
================================取前一天的日期&&&&&& OK================================&
echo offecho Wscript.echo dateadd("d",-1,date)&vbs.vbsset day=for /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&set day=%day% %%a&echo %day%
==================================================================
下面的代码有问题:当是月初1日的时候,结果会是0,如当前是,结果成了@echo offset Today=%date:~0,4%%date:~5,2%%date:~8,2%set /a PassDays=%Today%-1echo %PassDays%pause
==========================
BatchFile code@echo offrem 计算指定天数之前的日期set DaysAgo=1rem 假设系统日期的格式为yyyy-mm-ddcall:DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDaysset/a PassDays-=%DaysAgo%call:DaysToDate %PassDays% DstYear DstMonth DstDayset DstDate=%DstYear%-%DstMonth%-%DstDay%echo %DaysAgo%天的日期是%DstDate%pausegoto :eof:DateToDays %yy% %mm% %dd% daysset local ENABLEEXTENSIONSset yy=%1&set mm=%2&set dd=%3if&1%yy% LSS 200 if&1%yy% LSS 170 (set yy=20%yy%)else (set yy=19%yy%)& set/a dd=100%dd%%%100,mm=100%mm%%%100& set/a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2& set/a j=j/5+dd+y*365+y/4-y/100+y/400-2472633endlocal&set%4=%j%&goto:EOF:DaysToDate %days% yy mm ddsetlocal ENABLEEXTENSIONSset/a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=aset/a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5set/a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10(if %mm% LSS10set mm=0%mm%)&(if %dd% LSS10set dd=0%dd%)endlocal&set%2=%yy%&set%3=%mm%&set%4=%dd%&goto:EOF
============================================下面有多个方法============================================求N天前日期的批处理&&&  经常有人询问N天前的日期如何计算,因为牵涉到大月小月、平年闰年的问题,代码将会比较复杂,让人望而却步。
  虽然两年前willsort曾经发出过这样的代码(请参考:(已结)如果在WINDOWS下DOS命令行删除N天以前的文件),尽管思路极其简单:把日期转化为相对数字,做完减法之后,再把相对数字转化为日期,但是,6097之类的数字来得太过突兀,让人摸不着头脑,说实话,限于水平,我现在都还看得一头雾水。
  现在发三个求N天前日期的批处理( 日期可以带星期,但是,必须以年月日的顺序排列,年份必须是四位,否则会出错),在关键部分都有注释,比willsort的容易懂一点:
  代码1:CODE:& [Copy to clipboard]--------------------------------------------------------------------------------
@echo off:: 求N天前的日期:: 思路:::   模拟手工运算,用日期数减去天数,差值为负时向高位借1。:: 特点:::   代码简洁,容易理解,速度快慢取决于指定的天数大小
setlocal enabledelayedexpansion
:Maincls:: 日期可以带星期,但是,必须以年月日的顺序排列:: 年份必须是四位,否则会出错set day=%date%set days=0echo.&echo.echo&&&&&& 指定的日期是:%day%echo.set /p input=&&&&& 请指定要追溯的天数:
:: 提取日期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
clsecho.&echo.echo&&&&&& 指定的日期是:%day%echo.set sm=0%sm%set sd=0%sd%echo&&&&&& %input%&天前的日期是:%sy%-%sm:~-2%-%sd:~-2%pause&nulgoto Main
:countset /a sm-=1if !sm! equ 0 set /a sm=12, sy-=1call :daysset /a sd+=daysif %sd% leq 0 goto countgoto :eof
:days:: 获取指定月份的总天数set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"set /a max=28+leapset num=0set str=31 %max% 31 30 31 30 31 31 30 31 30 31for %%i in (%str%) do (&&& set /a num+=1&&& if %sm% equ !num! set days=%%i&goto :eof)goto :eof  代码2:CODE:& [Copy to clipboard]--------------------------------------------------------------------------------
@echo off:: 求N天前的日期:: 思路:::   把当前日期转换为天数::   用当前天数减去N天::   把结果再转换为日期:: 具体操作是:::   逐年计算天数:: 特点:::&&& 代码简洁,容易理解,速度较慢,但是不受指定天数大小的影响
setlocal enabledelayedexpansion
:Maincls:: 日期可以带星期,但是,必须以年月日的顺序排列:: 年份必须是四位,否则会出错set day=%date%set days=0echo.&echo.echo&&&&&& 指定的日期是:%day%echo.set /p input=&&&&& 请指定要追溯的天数:
rem ========把指定日期转换为天数========:: 提取日期for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (&&& set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100):: 把年份转化为天数for /l %%i in (1,1,%sy%) do (&&& set /a leap="^!(%%i %% 4) & ^!(^!(%%i %% 100)) | ^!(%%i %% 400)"&&& set /a days=days+365+leap):: 把月份转化为天数set /a num=0, mday=0, max=28+leapset str=0 31 %max% 31 30 31 30 31 31 30 31 30for %%i in (%str%) do (&&& set /a num+=1&&& if !num! leq !sm! set /a mday+=%%i)
set /a days=days+mday+sd
set /a days-=input
rem ========把天数转换为日期========:: 获取年份for /l %%i in (1,1,%sy%) do (&&& set /a leap="^!(%%i %% 4) & ^!(^!(%%i %% 100)) | ^!(%%i %% 400)"&&& set /a days_tmp=365+leap&&& if !days! gtr !days_tmp! (&&&&&&& set /a days-=days_tmp&&&&&&& set y=%%i&&& )):: 获取月份及日期set /a m=1, max=28+%leap%set str=31 %max% 31 30 31 30 31 31 30 31 30for %%i in (%str%) do (&&& if !days! gtr %%i (&&&&&&& set /a days-=%%i&&&&&&& set /a m+=1&&& ) else goto next):nextset m=0%m%set d=0%days%
clsecho.&echo.echo&&&&&& 指定的日期是:%day%echo.echo&&&&&& %input%&天前的日期是:%y%-%m:~-2%-%d:~-2%pause&nulgoto Main  代码3:CODE:& [Copy to clipboard]--------------------------------------------------------------------------------
@echo off:: 求N天前的日期:: 思路:::   把当前日期转换为天数::   用当前天数减去N天::   把结果再转换为日期:: 具体操作是::&   先按照每年365天计算,然后再计算闰年的个数::   最后再做转换:: 特点:::   代码复杂,不便于理解,但是速度很快:: 计算上还存在bug,可以用 11111 来和头两个做对比测试,暂时没时间更新
setlocal enabledelayedexpansion
:Maincls:: 日期可以带星期,但是,必须以年月日的顺序排列:: 年份必须是四位,否则会出错set day=set /a days=0, sum=0echo.&echo.echo&&&&&& 指定的日期是:%day%echo.set /p input=&&&&& 请指定要追溯的天数:
rem =======把日期转换为天数=======:: 提取日期for /f "tokens=1-3 delims=/-. " %%i in ("%day%") do (&&& set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100, y=%%i)
:: 把年份抓换为天数set num=0if %sy% lss 400 goto next1call :leap_num:next1set /a leap_num=sy/4-num
:: 把月份转换为天数set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"set /a max=28+leapset num=0set str=31 %max% 31 30 31 30 31 31 30 31 30 31for %%i in (%str%) do (&&& set /a num+=1&&& if !num! lss %sm% set /a sum+=%%i)
set /a days=365*sy+leap_num+sum+sd
set /a days-=input
rem =======把天数转换为日期=======
:: 获取年份set /a y=days/365set /a mod1=days %% 365call :leap_numset /a mod2=mod1-leap_num:loop2if %mod2% lss 0 (&&& set /a y-=1&&& set /a mod2=365+mod2) else goto next2goto loop2
:: 获取月份及日期:next2set /a m=1, days=mod2+1, max=28+%leap%set str=31 %max% 31 30 31 30 31 31 30 31 30for %%i in (%str%) do (&&& if !days! gtr %%i (&&&&&&& set /a days-=%%i&&&&&&& set /a m+=1&&& ) else goto next3):next3set m=0%m%set d=0%days%
clsecho.&echo.echo&&&&&& 指定的日期是:%day%echo.echo&&&&&& %input%&天前的日期是:%y%-%m:~-2%-%d:~-2%pause&nulgoto Main
:leap_num:: 计算能被100整除但是不能被400整除的年次set /a y_tmp=(%y:~0,1%%y%-%y%)/10set num=0:loop1set /a mod=y_tmp %% 400if %mod% neq 0 set /a num+=1set /a y_tmp-=100if %y_tmp% geq 100 goto loop1set /a leap_num=y/4-numgoto :eof[ Last edited by namejm on
at 11:15 PM ]
发一个使用VBS计算日期的批处理CODE:& [Copy to clipboard]--------------------------------------------------------------------------------
@echo offrem 删除三天前的文件夹rem 目标目录为C:\testset Target=C:\testdir /b %Target%&%temp%\FolderList.txtecho dt=date()-3&%temp%\OldDate.vbsecho s=right(year(dt),4) ^& right("0" ^& month(dt),2) ^&& right("0" ^& day(dt),2)&&%temp%\OldDate.vbsecho wscript.echo s&&%temp%\OldDate.vbsfor /f %%f in ('cscript /nologo %temp%\OldDate.vbs') do @set DelFlag=%%ffor /f %%i in (%temp%\FolderList.txt) do (& if %%i lss %DelFlag% (&&& rd /s /q %Target%\%%i&&& )& )del %temp%\FolderList.txtdel %temp%\OldDate.vbs
::判断当前日期的前一天::首先直接把天数减1天::如果出来的是0天就把月减1天,天数是当月的最后一天。::如果出来的是0月就把年减1年,月数是当年的最后一月。@echo off&setlocal enabledelayedexpansionset yyyy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set /a nd=!dd!-1::如果象3月1日减一天是0天就...if !nd!==0 call :dd0if !mm!==0 call :mm0set yyyymmdd=!yyyy!-!mm!-!nd!echo 今天是:%date:~0,10%echo 昨天是:!yyyymmdd!pause
:dd0set /a mm=!mm!-1for %%a in (1&3 5 7 8 10 12)do set %%add=31set /a pddd=!yyyy!*10/4set pd2d=!pddd:~-1,1!set 2dd=28if !pd2d!==0 set 2dd=29for %%b in (4 6 9 11)do set %%bdd=30set nd=!%mm%dd!goto :eof:mm0set /a yyyy=!yyyy!-1set mm=12set nd=31goto :eof
=========================================================
&[原创]取前一天的日期的bat脚本
这个是我前些日子刚写的bat中的一部分, 这是我第一次写bat脚本, 那段日子成天泡在联盟中学习bat的知识, 非常感谢联盟的兄弟们!由于批处理脚本在自动上传文件中使用的非常广泛, 取前一天的日期是完成该任务大多会碰到的问题, 所以把代码贴在这里供像我一样的新手参考.我的方法有一点取巧之嫌: 如果当天是1号, 那么需要处理月(也许有年), 然后列举前一月最后一天的日, 比如10月就一定是31天, 但是2月就要特殊处理, 需要计算是否为闰年, 具体的计算方法可以在我的代码中看到, 这个想必难不倒大家, 最后将日期一拼就是前一天的日期啦.希望大家有更好的方法把代码贴出来分享一下:)CODE:& [Copy to clipboard]--------------------------------------------------------------------------------
::--------Generate Last Date----------echo Generate last datetime...
set TodayYear=%date:~0,4%set TodayMon=%date:~5,2%set TodayDay=%date:~8,2%
set LastdayYear=set LastdayMon=set LastdayDay=
set LastdayYear=%TodayYear%set LastdayMon=%TodayMon%set /A LastdayDay=TodayDay-1
if "%LastdayDay%" == "0" (&&&&&&& if "!LastdayMon!" == "01" (&&&&&&&&&&&&&&& set LastdayMon=12&&&&&&&&&&&&&&& set /A LastdayYear-=1&&&&&&& ) else (&&&&&&&&&&&&&&& set /A LastdayMon-=1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& if "!LastdayMon!" == "1" set LastdayMon=01&&&&&&&&&&&&&&& if "!LastdayMon!" == "2" set LastdayMon=02&&&&&&&&&&&&&&& if "!LastdayMon!" == "3" set LastdayMon=03&&&&&&&&&&&&&&& if "!LastdayMon!" == "4" set LastdayMon=04&&&&&&&&&&&&&&& if "!LastdayMon!" == "5" set LastdayMon=05&&&&&&&&&&&&&&& if "!LastdayMon!" == "6" set LastdayMon=06&&&&&&&&&&&&&&& if "!LastdayMon!" == "7" set LastdayMon=07&&&&&&&&&&&&&&& if "!LastdayMon!" == "8" set LastdayMon=08&&&&&&&&&&&&&&& if "!LastdayMon!" == "9" set LastdayMon=09&&&&&&& )&&&&&&&&&&&&&&& if "!LastdayMon!" == "01" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "03" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "04" set LastdayDay=30&&&&&&& if "!LastdayMon!" == "05" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "06" set LastdayDay=30&&&&&&& if "!LastdayMon!" == "07" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "08" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "09" set LastdayDay=30&&&&&&& if "!LastdayMon!" == "10" set LastdayDay=31&&&&&&& if "!LastdayMon!" == "11" set LastdayDay=30&&&&&&& if "!LastdayMon!" == "12" set LastdayDay=31&&&&&&&&&&&&&&& if "!LastdayMon!" == "02" (&&&&&&&&&&&&&&& set IsLeapYear=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear!%%400&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=29&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear!%%100&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=28&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear%%4&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=29&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&& ) else (&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=28&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&& )&&&&&&& ))
:MAKELASTDATE
if "%LastdayDay%" == "1" set LastdayDay=01if "%LastdayDay%" == "2" set LastdayDay=02if "%LastdayDay%" == "3" set LastdayDay=03if "%LastdayDay%" == "4" set LastdayDay=04if "%LastdayDay%" == "5" set LastdayDay=05if "%LastdayDay%" == "6" set LastdayDay=06if "%LastdayDay%" == "7" set LastdayDay=07if "%LastdayDay%" == "8" set LastdayDay=08if "%LastdayDay%" == "9" set LastdayDay=09
set LastDate=%LastdayYear%.%LastdayMon%.%LastdayDay%
echo Generate last datetime OK!
俺用FOR /L给你改了下 权当自己练习~~~~应该简练一些~~
& Quote:&::--------Generate Last Date----------echo Generate last datetime...
set TodayYear=%date:~0,4%set TodayMon=%date:~5,2%set TodayDay=%date:~8,2%
set LastdayYear=set LastdayMon=set LastdayDay=
set LastdayYear=%TodayYear%set LastdayMon=%TodayMon%set /A LastdayDay=TodayDay-1
if "%LastdayDay%" == "0" (&&&&&&& if "!LastdayMon!" == "01" (&&&&&&&&&&&&&&& set LastdayMon=12&&&&&&&&&&&&&&& set /A LastdayYear-=1&&&&&&& ) else (&&&&&&&&&&&&&&& set /A LastdayMon-=1&&&&&&&&&&&&&&& for /l %%a in (1,1,9) do if !LastdayMon! == %%a (set LastdayMon=0%%a)&&&&&&& )
& for /l %%a in (1,2,7) do (&&&&& if !LastdayMon! equ %%a (set set LastdayDay=31)&&&&&& else&&&&& for /l %%a in (8,2,12) do if !LastdayMon! equ %%a (set set LastdayDay=31)&&&&& else&&&&& if "!LastdayMon!" == "02" (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set IsLeapYear=&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear!%%400&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=29&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear!%%100&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=28&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set /A IsLeapYear=!LastdayYear%%4&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& if "!IsLeapYear!" == "0" (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=29&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& else (&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& set LastdayDay=28&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& goto MAKELASTDATE&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& )&&&&& else set LastdayDay=30& ))
:MAKELASTDATEfor /l %%a in (1,1,9) do if %LastdayDay% ==&1&(set LastdayDay=0%%a)
set LastDate=%LastdayYear%.%LastdayMon%.%LastdayDay%
echo Generate last datetime OK!&&
应该在批处理文件的前面加入一行setlocal enabledelayedexpansion表示启用变量延迟,否则这个程序不行正常执行,我已试过。最后感谢你的分亨,帮我解决了问题。
&&&只有启用了变量延迟,才能用!!将变量名扩起来表示对变量值的引用。
&&如果有数据库连接的话,可以从数据库里取sysdate-1,然后写到一个文件中,再从文件中将前一天的日期取出即可,,,前提 要能连数据库 嘎嘎
&@echo offecho Wscript.echo dateadd("d",-1,date)&vbs.vbsfor /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&echo %%a
阅读(...) 评论() &MATLAB复习题(答案仅供参考)1_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MATLAB复习题(答案仅供参考)1
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩8页未读,
定制HR最喜欢的简历
你可能喜欢Daniel_K鍑哄搧锛佸垱鏂癝B X-Fi澹板崱Win10椹卞姩
23:26:08&&鍑哄?锛氬揩绉戞妧 浣滆}

我要回帖

更多关于 wind 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信