バッチファイル自身に自動アップデート機能を搭載する方法

はじめに

バッチファイル自身に自動アップデート機能を搭載する方法を紹介します。複数の PC の一括適用に便利です。

需要

Windows PC 数十台が稼働しており、それぞれの PC は個人で自由に使えるようにしています。ある作業をするためにバッチファイルを使っています。すべての PC から NAS へ接続できるようにしてあり、バッチファイルのバージョンアップ時は、各自 NAS からダウンロードして上書き保存をするようにしていました。ユーザーの手間を削減できればいいなと思い自動アップデート機能を搭載しました。

方法

NAS に最新バージョンのみを記載したテキストファイルと最新版のバッチを設置します。バッチには、作業の最後に最新版があれば更新してから終了するようにプログラムを作成しました。ファイルの末尾に記載するのがミソです。このあとに他の作業をすると不具合がおきます(goto など)。
SET /A CURRENTVERSION=10
SET /P NEWVERSION=<"\\NAS\[~]version"
if %CURRENTVERSION% LSS %NEWVERSION% (copy /y "\\NAS\[~]バッチ.bat" %0)
CURRENTVERSION に現在のバージョン、最新バージョンのみを記載したテキストファイルの内容を NEWVERSION に代入して比較し、 NEWVERSION の方が大きい場合は自身のバッチ(%0)へ上書きコピーするという仕組みです。
意外と簡単に実装できました。

ホームプロフィール外部リンクのため、別ウインドウで開きますプライバシーポリシー

© 2023 Oishi Takanori / Made with Gatsby.js