命名って難しい

変数、関数、クラスなどなど実装より命名に毎回悩むタイプの人間による技術についてのメモ。

社内のイントラネットを更新のある時だけ開きたいというバッチ。

イントラネットのトップページに色々更新情報があるんですが、 更新情報が無い時も開いて目視しているのが面倒なので、 更新がある時だけ開くバッチを作りました。

処理の流れ

  1. 以前取得していたページがあればそれを前回取得したページとして名称変更
  2. 現在の対象ページを取得する
  3. 以前取得した対象ページと比較する
  4. 一致してなければそのページを開く

以上。

ソースコード

@echo off
setlocal
pushd %~dp0

set url=%1
set compare_log_path=%~dp0compare_log.txt
set current_page_path=%~dp0current.html
set previous_page_path=%~dp0previous.html

rem 前回取得したままの現在のファイルを前回のファイル扱いにする。
move  /Y %current_page_path% %previous_page_path%

rem 対象ページを取ってくる
bitsadmin /TRANSFER check_intra %url% %current_page_path%

rem 以前取得したページと比較する
fc %current_page_path% %previous_page_path% > %compare_log_path%

rem 一致しない時は開く
if %errorlevel% == 0 (
  goto end
) else (
  start /d "C:\Program Files\Internet Explorer" IEXPLORE.EXE %url%
)

:end
popd
endlocal

呼び出しているプログラム/参考

bitsadmin

wget的なものが欲しかったので使用。 簡単な使い方しかしてないけれど色々機能あるみたいですね(全部読む気力はない)。 取得先のファイルが既に存在すると上書きしてくれないみたい。

BITSAdmin Tool
BITSAdmin Examples

fc

ファイルの比較で使用。 比較結果は一応ログにしてますけど特に意味は無いです。

FC.exe

使いかた

 [このバッチ] "[url]"

以上