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

[文件操作] [已解决]批处理实现循环60秒监控文本文件是否被修改的功能

脚本如下,出了一个问题,就是循环后60秒内文本没被修改过,if not "!filedat_new!" == "!filedat_old!" 依然成立,提示被修改,搞得我头大,没有头绪,求各位帮忙分析下问题在哪,谢谢!
  1. @echo off& color a
  2. setlocal EnableDelayedExpansion
  3. cd /d D:\
  4. for /f %%i in ( 'dir /b a.txt') do (
  5. set filedat_old=%%~ti
  6. echo 旧文件修改时间:!filedat_old! )
  7. :loop
  8. ping -n 60 127.1>nul
  9. for /f %%i in ('dir /b a.txt') do (
  10. set filedat_new=%%~ti
  11. echo 新文件修改时间:!filedat_new! )
  12. echo 旧文件修改时间:!filedat_old!
  13. if not "!filedat_new!" == "!filedat_old!" (
  14. echo 文件修改时间有变动!
  15. set filedat_old=!filedat_new! )
  16. goto loop
复制代码
错误信息图片如下:

谢谢你的解答,这个能通过,现在比解决这个问题,我更想知道这个折磨我的问题是啥原因?
如果能解答一番,十分感激!

TOP

本帖最后由 lifei259 于 2017-11-9 11:47 编辑
  1. @echo off& color a
  2. setlocal EnableDelayedExpansion
  3. cd /d D:\
  4. :loop
  5. for /f %%i in ( 'dir /b a.txt') do (
  6. set filedat_old=%%~ti
  7. echo 旧文件修改时间:!filedat_old! )
  8. ping -n 60 127.1>nul
  9. for /f %%i in ('dir /b a.txt') do (
  10. set filedat_new=%%~ti
  11. echo 新文件修改时间:!filedat_new! )
  12. if not "!filedat_new!" == "!filedat_old!" (
  13. echo 文件修改时间有变动! )
  14. goto loop
复制代码
1

评分人数

TOP

返回列表