批处理文件 - 让昨天的日期与当前批处理文件应用 [英] Batch File - getting yesterdays date and applying in current batch file

查看:124
本文介绍了批处理文件 - 让昨天的日期与当前批处理文件应用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

首先,我是很新的批处理文件,但这里是我需要做的。
我每天都需要改变IE的主页,但我需要得到昨天日期,并把它应用到网页地址。例如...

First off i am very new to batch files but here is what i need to do. i need to change IE's Homepage every day, but i need to get yesterdays date and apply it to the web address. example...

这是我目前有

@echo off
REG DELETE "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /f
REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /d "http://ibapps.ibank.local/Reports/address-discrepancy-report-02.17.2015.html" /f

需要做些什么是让昨天的日期,并把它放在那里的日期是在网络上的地址..即2015年2月17日
任何帮助将是非常美联社preciated ..

What needs to happen is to get yesterdays date and put it in where the date is on the web address.. ie 02.17.2015 any help would be much appreciated..

推荐答案

试试这个:

@echo off
setlocal

Call :GetDateTime Year Month Day
Echo %Year% %Month% %Day%
Call :SubtractDate %Year% %Month% %Day% -1 Ret
echo %Ret%
    REG DELETE "HKCU\Software\Microsoft\Internet  Explorer\Main" /v "Start Page" /f
    REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /d "http://ibapps.ibank.local/Reports/address-discrepancy-report-%ret%.html" /f
exit /b


:SubtractDate Year Month Day <+/-Days> Ret
::Adapted from DosTips Functions::
setlocal & set a=%4
set "yy=%~1"&set "mm=%~2"&set "dd=%~3"
set /a "yy=10000%yy% %%10000,mm=100%mm% %% 100,dd=100%dd% %% 100"
if %yy% LSS 100 set /a yy+=2000 &rem Adds 2000 to two digit years
set /a JD=dd-32075+1461*(yy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yy+4900+(mm-14)/12)/100)/4
if %a:~0,1% equ + (set /a JD=%JD%+%a:~1%) else set /a JD=%JD%-%a:~1%
set /a L= %JD%+68569,     N= 4*L/146097, L= L-(146097*N+3)/4, I= 4000*(L+1)/1461001
set /a L= L-1461*I/4+31, J= 80*L/2447,  K= L-2447*J/80,      L= J/11
set /a J= J+2-12*L,      I= 100*(N-49)+I+L
set /a YYYY= I, MM=100+J, DD=100+K
set MM=%MM:~-2% & set DD=%DD:~-2%
set ret=%MM: =%.%DD: =%.%YYYY: =%
endlocal & set %~5=%ret%
exit /b

:GetDateTime Year Month Day Hour Minute Second
@echo off & setlocal
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
( ENDLOCAL
     IF "%~1" NEQ "" set "%~1=%YYYY%" 
     IF "%~2" NEQ "" set "%~2=%MM%" 
     IF "%~3" NEQ "" set "%~3=%DD%"
     IF "%~4" NEQ "" set "%~4=%HH%" 
     IF "%~5" NEQ "" set "%~5=%Min%"
     IF "%~6" NEQ "" set "%~6=%Sec%"
)
exit /b

这篇关于批处理文件 - 让昨天的日期与当前批处理文件应用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆