[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

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

本帖最后由 batnoob 于 2017-11-9 17:41 编辑

脚本如下,出了一个问题,就是循环后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
复制代码
错误信息图片如下:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

本帖最后由 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

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

TOP

返回列表