IPMSG のログをバックアップするバッチスクリプト version 1.1.0

 ろくにログも出てないのに毎回バックアップするのはどうかと。

  • IPMSG のログファイルをバックアップした後、空にします。
  • 色々調べてみたけど、OS に依存しない形で日付をフォーマットする方法は見つからなかった。
  • かといってVB で書くと移植性悪いしなぁ。
  • Windows 標準圧縮は cab (キャビネット方式)らしい。
  • ログファイルのサイズが 0 だったらバックアップしない。というのを実装するために、ショートカットでログファイルを引数指定する羽目に。
  • バッチって結局自前のスクリプトとか実行ファイルをつなげてつなげてつなげてつなげて。

HISTORY

2008-07-06 1.1.0

 サイズが一定以下の場合はバックアップをしない機能を追加。

2008-07-03 1.0.0

 公開

SCRIPT

@echo off
setlocal
REM ====================
REM IPMSG のログファイルをcab で圧縮してバックアップする
REM @date 2008-07-03
REM @author 金魚屋・J・龍角
REM @copyright 金魚屋見聞録
REM @version 1.1.0
REM ====================
REM はじめに
REM --------------------
REM このスクリプトの利用に特に制限はありません。
REM このスクリプトを利用することによって起こったあらゆることについて、
REM 作者はあらゆる責任を負いません。
REM 利用には makecab がインストールされている必要があります。
REM ====================
REM 概要
REM --------------------
REM 指定のログファイルをcab で圧縮して、指定のディレクトリに保存します。
REM 圧縮後、ログファイルは空になります。
REM はじめからログファイルが空のときやサイズが一定以下の場合は何もしません。
REM ====================
REM 使い方
REM --------------------
REM 1. このスクリプトへのショートカットを作成
REM 2. ショートカットのリンク先で、スクリプトのパスの後ろにIPMSG のログファイルへのパスを指定
REM 3. 下記にある<設定></設定>の値を変更する。
REM ====================
REM 設定について
REM --------------------
REM %backupdir%
REM バックアップファイルを設置するディレクトリのパス
REM %backupfile_name%
REM バックアップファイルの名前
REM %backupsize%
REM バックアップするログファイルの最低サイズ(byte 指定)
REM ====================
REM 作成されるバックアップファイルの名前の例
REM --------------------
REM backupfile_name=ipmsg.log
REM 実行日時=2008-07-03 10:45:23
REM ファイル名=ipmsg.log.20080703104523.cab
REM ====================
REM 更新履歴
REM --------------------
REM 2008-07-06 1.1.0
REM サイズが一定以下の場合はバックアップをしない機能を追加。
REM 2008-07-03 1.0.0
REM 公開
REM ====================

REM <設定>
SET backupdir=%HOME%\backup
SET backupfile_name=ipmsg.log
SET /A backupsize=1024*5
REM </設定>

REM ====================
REM メイン処理
REM ====================

if not exist %1 goto logfileerror
if not exist "%backupdir%\*" goto backupdirerror

if %~z1 == 0 goto end
if %~z1 NEQ %backupsize% goto smallsizeend

SET logdate=%date:/=%
SET logdate=%logdate:-=%
SET logtime=%time: =0%
SET logtime=%logtime::=%
SET logtime=%logtime:~0,6%

SET backupfile=%backupdir%\%backupfile_name%.%logdate%%logtime%.cab

echo makecab %1 "%backupfile%"
makecab %1 "%backupfile%"
type nul >%1

goto end

:logfileerror

echo ログファイルが見つかりません。
pause
goto end

:backupdirerror

echo バックアップディレクトリが見つかりません。
pause
goto end

:smallsizeend
echo ログファイルのサイズが%backupsize% 以下です
pause
goto end


:end
endlocal