silverwire #5826(2008/02/21 17:22 GMT) [ Batchfile ] Rating0/0=0.00
指定されたファイルのコピーを一時ディレクトリ(%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
Rating0/0=0.00-0+
1 reply [ reply ]
silverwire #5827(2008/02/21 17:42 GMT) Rating0/0=0.00
誤りが 1つありましたので、訂正します。 20c20 < ping -n %1 127.0.0.1 >NUL --- > ping -n 1 127.0.0.1 >NUL :: 1秒間スリープ
[ reply ]
silverwire
#5826()
[
Batchfile
]
Rating0/0=0.00
指定されたファイルのコピーを一時ディレクトリ(%TEMP%)に作成し、バイナリモードで元 のファイルと比較しています。タイムスタンプだけが更新された場合には検出できません。 e.g. C:>monitor monitor.bat 指定されたファイルを監視しています。 終了するにはCtrl-Cを押してください。 02:22:22 指定されたファイルが更新されました。 Windows XPで動作を確認。fcはWindows NTにも存在するので、NTでも動作するかもしれま せん。 # 为了妈贡献出我自己手里的全部二。:: 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 :EOFRating0/0=0.00-0+
1 reply [ reply ]