[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
纯P是不是不让调外部命令?
可以用reg.exe么?

TOP

  1. @echo %time%
  2. @echo off & setlocal enabledelayedexpansion
  3. set sOldFile="ab cd.txt"
  4. set sNewFile="c.txt"
  5. for %%a in (31 28 31 30 31 30 31 31 30 31 30 31) do set /a i += 1 && set iM!i!=%%a
  6. for /f "tokens=1-3 delims=-" %%a in ("%date%") do set iThisYear=%%a & set iThisMonth=%%b & set iThisDay=%%c
  7. set /a iLeapYearCount = (iThisYear - 1) / 4 - (iThisYear - 1) / 100 + (iThisYear - 1) / 400
  8. call :GetFebDayCount %iThisYear% iM2
  9. for /l %%a in (1, 1, %iThisMonth%) do if %%a lss %iThisMonth% set /a iThisMonthToDayCount += iM%%a
  10. set /a iAllDayCount = 365 * (iThisYear - 1) + iLeapYearCount + iThisMonthToDayCount + iThisDay
  11. for /f "usebackq delims=" %%a in (%sOldFile%) do set /a iDayDiff += 1
  12. set /a iFirstDayCount = iAllDayCount - (iDayDiff - 1)
  13. set /a iTempYear = iFirstDayCount / 365 - 1
  14. :GetDate
  15. set /a iTempLeapCount = iTempYear / 4 - iTempYear / 100 + iTempYear / 400
  16. set /a iTempDayCount = iFirstDayCount - 365 * iTempYear - iTempLeapCount
  17. if %iTempDayCount% lss 0 set /a iTempYear -= 1 && goto :GetDate
  18. if %iTempDayCount% equ 0 set /a iYear = iTempYear, iMonth = 12, iDay = 31 && goto :WriteText
  19. set /a iYear = iTempYear + 1
  20. call :GetFebDayCount %iYear% iM2
  21. for /l %%a in (1, 1, 12) do (
  22. set /a iTempDayCount -= iM%%a
  23. if !iTempDayCount! leq 0 set /a iMonth = %%a, iDay = iM%%a + iTempDayCount, iTempDay = iM%%a && goto :WriteText
  24. )
  25. :WriteText
  26. cd.>%sNewFile%
  27. for /f "usebackq delims=" %%a in (%sOldFile%) do (
  28. if !iMonth! lss 10 (set sMonth=0!iMonth!) else (set sMonth=!iMonth!)
  29. if !iDay! lss 10 (set sDay=0!iDay!) else (set sDay=!iDay!)
  30. >>%sNewFile% echo !iYear!年!sMonth!月!sDay!日 %%a
  31. if !iDay! lss !iTempDay! (
  32. set /a iDay += 1
  33. ) else (
  34. >>%sNewFile% echo.
  35. if !iMonth! lss 12 (
  36. set /a iMonth += 1, iDay = 1
  37. ) else (
  38. set /a iYear += 1, iMonth = 1, iDay = 1
  39. call :GetFebDayCount !iYear! iM2
  40. )
  41. set /a iTempDay = iM!iMonth!
  42. )
  43. )
  44. echo %time%
  45. pause
  46. exit /b
  47. :GetFebDayCount
  48. for %%a in (4 100 400) do set /a r%%a=%1%%%%a
  49. set %2=28
  50. if %r400%==0 (set %2=29) else (if %r4%==0 if not %r100%==0 set %2=29)
复制代码

[ 本帖最后由 rat 于 2008-10-20 16:55 编辑 ]
2

评分人数

    • pusofalse: 果真高人。PB + 15 技术 + 1
    • batman: 高人,建议加入我们的版主行列PB + 15 技术 + 1

TOP

返回列表