[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 15# licunwei


你到powershell区去问下
因为是循环执行的,所以poweshell不要退出,一直用PS执行所有操作就可以

QQ 20147578

TOP

回复 1# licunwei

一楼代码用dir简报获取文件时间戳的精度是分钟级
还是用powershell功能获取秒级精度的文件时间戳更方便,只是powershell的首启速度较慢而已...
以下代码假设*603*.xml文件修改时间 ‘总是晚于’ *602*.xml文件修改时间
  1. @echo off &setlocal enabledelayedexpansion
  2. set "folder=D:\SCETC\dataXml\"
  3. :[Loop]
  4. (call :getSofF "%folder%*602.xml" f602 h602 s602)
  5. (call :getSofF "%folder%*603.xml" f603 h603 s603)
  6. if !s602! gtr !s603! set/a "s603+=(24+h603)*3600"
  7. set/a "dt=!s603!-!s602!"
  8. if !dt! gtr 1 (xcopy /y /i "!f603!" "D:\交易失败流水\%date:~0,4%%date:~5,2%%date:~8,2%\")
  9. goto[Loop]
  10. :getSofF
  11. for /f "tokens=1* delims=:" %%A in (' dir /b/o-d/tw "%~1"^|findstr /n ".*"^|findstr /lbc:"1:" ') do (
  12. for /f "delims=" %%t in (' powershell "(Get-ChildItem """%%B""").LastWriteTime" ') do (
  13. set "t=%%t" &for /f "tokens=1-3 delims=:" %%a in ("!t:~-8!") do for %%k in (%%a %%b %%c) do (
  14. set "k=%%k" &if "!k:~,1!"=="0" (set "ts=!ts!:!k:~-1!") else set "ts=!ts!:!k!"
  15. )
  16. )
  17. for /f "tokens=1-3 delims=:" %%a in ("!ts:~1!") do (set "%~3=%%a"&set/a "s=%%a*3600+%%b*60+%%c")
  18. set "%~2=%%B" &set "%~4=!s!"
  19. )
  20. exit/b
复制代码

TOP

返回列表