找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23700|回复: 2

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

[复制链接]
发表于 2017-11-9 11:03:49 | 显示全部楼层 |阅读模式
脚本如下,出了一个问题,就是循环后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
复制代码
错误信息图片如下:
发表于 2017-11-9 11:46:09 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
batnoob + 1 感谢指点

查看全部评分

 楼主| 发表于 2017-11-9 12:53:12 | 显示全部楼层
谢谢你的解答,这个能通过,现在比解决这个问题,我更想知道这个折磨我的问题是啥原因?
如果能解答一番,十分感激!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:52 , Processed in 0.018660 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表