Comment detail

ファイル更新の監視 (Nested Flatten)
指定されたファイルのコピーを一時ディレクトリ(%TEMP%)に作成し、バイナリモードで元
のファイルと比較しています。タイムスタンプだけが更新された場合には検出できません。

  e.g.
    C:>monitor monitor.bat
    指定されたファイルを監視しています。
    終了するにはCtrl-Cを押してください。

    02:22:22 指定されたファイルが更新されました。

Windows XPで動作を確認。fcはWindows NTにも存在するので、NTでも動作するかもしれま
せん。

# 为了妈贡献出我自己手里的全部二。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
:: monitor.bat
@echo off
  setlocal
    set f=%TEMP%\%~nx1

    if "%1" == "" (echo %~n0 [FILE] & goto :EOF)
    if not exist %1 (echo 指定されたファイルが見つかりません。 & goto :EOF)

    echo 指定されたファイルを監視しています。
    echo 終了するにはCtrl-Cを押してください。
    echo.
    copy %1 %f% >NUL
    :loop
      fc /b %f% %1 >NUL
      if %ERRORLEVEL% equ 1 (
        for /f "tokens=2 delims=. " %%t in ('echo.^|time') do echo %%t 指定されたファイルが更新されました。
        copy %1 %f% >NUL
      )
      ping -n %1 127.0.0.1 >NUL
    goto loop
  endlocal
goto :EOF
誤りが 1つありましたので、訂正します。

20c20
<       ping -n %1 127.0.0.1 >NUL
---
>       ping -n 1 127.0.0.1 >NUL ::  1秒間スリープ

Index

Feed

Other

Link

Pathtraq

loading...