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

バッチファイル自身に自動アップデート機能を搭載する方法を紹介します。複数の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)へ上書きコピーするという仕組みです。

意外と簡単に実装できました。

広告 (下に続く)

シェアする