社内のイントラネットを更新のある時だけ開きたいというバッチ。
イントラネットのトップページに色々更新情報があるんですが、 更新情報が無い時も開いて目視しているのが面倒なので、 更新がある時だけ開くバッチを作りました。
処理の流れ
- 以前取得していたページがあればそれを前回取得したページとして名称変更
- 現在の対象ページを取得する
- 以前取得した対象ページと比較する
- 一致してなければそのページを開く
以上。
ソースコード
@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
ファイルの比較で使用。 比較結果は一応ログにしてますけど特に意味は無いです。
使いかた
[このバッチ] "[url]"
以上