なんか昔に sh で組んだけど,sh が使える普通の環境なら logrotate.d 使えばいいと気付いて,実際には使ってなかった.
(hadacchi_blog : logrotateをするスクリプト)
win で使いたくなって,cygwin はもはや使ってないので,バッチファイルで作った.
使い方は,以下を logrotate.bat とした時,
logrotate.bat hogehoge.ext
エラー処理してないので,利用時は自分で注意してね.
@echo off setlocal enabledelayedexpansion for %%i in (%*) do ( set file=%%~ni set ext=%%~xi set /a num=0 :LOOP if exist !file!.!num!!ext! ( set /a num+=1 ) else goto ENDLOOP goto LOOP :ENDLOOP set /a num-=1 for /l %%n in (!num!,-1,0) do ( set /a tonum=%%n+1 ren !file!.%%n!ext! !file!.!tonum!!ext! if errorlevel 1 ( goto ERR ) ) copy !file!!ext! !file!.0!ext! if errorlevel 1 ( goto ERR ) ) exit :ERR pause