Date 检查注册表中的日期并使用批处理文件进行比较

Date 检查注册表中的日期并使用批处理文件进行比较,date,batch-file,registry,Date,Batch File,Registry,有人能帮忙吗,因为我想检查和比较通过.bat文件添加到注册表的日期。我使用以下方法将日期插入注册表: 注册添加HKCU\software\MMG/v日期戳/d“%DATE%”/t注册扩展/ 如2013年12月1日所示 基本上,我正在尝试检查该日期,以及它是否有30天的历史处理.bat文件中的函数 提前感谢这是针对英国日期格式“dd/mm/yyyy”,echo%date%输出02/12/2013: @ECHO OFF &SETLOCAL rem REG ADD HKCU\software\

有人能帮忙吗,因为我想检查和比较通过.bat文件添加到注册表的日期。我使用以下方法将日期插入注册表:

注册添加HKCU\software\MMG/v日期戳/d“%DATE%”/t注册扩展/

如2013年12月1日所示

基本上,我正在尝试检查该日期,以及它是否有30天的历史处理.bat文件中的函数


提前感谢

这是针对英国日期格式“dd/mm/yyyy”,
echo%date%
输出
02/12/2013

@ECHO OFF &SETLOCAL
rem REG ADD HKCU\software\MMG /v datestamp /d "01/11/2013"
for /f "tokens=2*" %%a in ('reg query HKCU\software\MMG /v datestamp') do set "RegDATE=%%b"
call:DateToJDN %RegDATE% RegJDN
call:DateToJDN %DATE% JDN
set /a diff=JDN-RegJDN
echo(%Diff% days between %RegDATE% and %DATE%.
goto:eof

rem Convert the date to Julian Day Number
:DateToJDN dd/mm/yyyy jdn=
setlocal
set date=%1
set /A yy=%date:~-4%, mm=1%date:~-7,2% %% 100, dd=1%date:~-10,2% %% 100
set /A a=mm-14, jdn=(1461*(yy+4800+a/12))/4+(367*(mm-2-12*(a/12)))/12-(3*((yy+4900+a/12)/100))/4+dd-32075
endlocal & set %2=%jdn%
exit /B

输出:

31 days between 01/11/2013 and 02/12/2013.

在你看来,可能是重复的。然而,dostips.com上有一组丰富的函数,使它非常简单。因此,请不要说任何语言都是糟糕的选择。也许有人在用batch取乐。也许他们只知道batch,学习一门语言需要2年的时间。也许他们只能使用本地的东西。你永远不知道。对op说:你能展示一下你的尝试吗,这样我们就有东西可以做了?谢谢这只是家里的一个小项目,我现在正在学习这门语言。这是从注册表中提取的日期,并与最新日期进行比较。谢谢你的帮助input@nephi12我并不是说这是不可能的,但是对于/f“skip=1 tokens=2-4 delims=(“'echo.| date'”中的%%a)do(对于/f“tokens=1-3 delims=/。-“%a in”(%DateStr:*=”)do(set%%a=%a&set%%b=%b&set%%c=%c))并不是专门为日期操纵设计的语言。(代码还假设我们是英语。)感谢您的示例。非常感谢