[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 terse 于 2023-3-20 16:13 编辑

纯P
修改关于时间的算法,现在按1970.1.1的时间为基数,之前的可能出错
  1. @echo off&setlocal enabledelayedexpansion
  2. rem 存为ANSI码
  3. set /a "Jan=1,Feb=2,Mar=3,Apr=4,May=5,Jun=6,Jul=7,Aug=8,Sep=9,Oct=10,Nov=11,Dec=12"
  4. set "d=(36525*(y+4716)/100+306001*(m+1)/10000+10%%%%b%%100-2442125)"
  5. set "s=(10%%d%%100)*3600+(10%%e%%100)*60+(10%%f%%100)"
  6. set "bs=#"
  7. for /f "delims=" %%i in (b.txt) do (
  8.      if defined b (
  9.         set bs=!bs!!b!%%i#
  10.         set "b="
  11.      ) else set b=%%i
  12. )
  13. for /f "delims=" %%f in ('dir /b /a-d *.txt') do (
  14.      (for /f "usebackq tokens=2,3,5 delims= ,." %%a in ("%%f") do (
  15.           for %%i in ("!a!%%c") do  if not "!bs!" == "!bs:#%%~i#=!" (
  16.                 if not "!str!" == "%%a%%b" (
  17.                     set t=0
  18.                     for %%m in ("%%a%%b" "!str!" ) do (
  19.                           for /f " tokens=1-6 delims=: " %%a in (%%m) do (
  20.                                set /a "m=(%%a+9)%%12+3,y=%%c-m/13"
  21.                                 if !t! == 0 (
  22.                                    set /a "t=%d%*86400+%s%"
  23.                                 ) else set /a "t-=%d%*86400+%s%"
  24.                           )
  25.                     )
  26.                 echo;计算列: !a!%%c 时差间隔: !t!秒
  27.                 ) else echo;计算列: !a!%%c 时差间隔: OK
  28.           )
  29.           set "a=%%c"
  30.           set "str=%%a%%b"
  31.       ))>%%f.tmp
  32. )
  33. pause
复制代码

TOP

回复 11# 娜美
已修改 另外处理时间换个算法 原来的怕有误

TOP

返回列表