こんにちわ。しろです。
最近、仕事で初めて成果物としてWindowsバッチを作成しました。
Windowsのコマンドはちょいちょい知っているものの、バッチでプログラムを組んだことはなかったです。
「鉄は熱いうちに打て」ということなので、記憶から消えないうちに自宅でも作ってみました。
仕事で作ったものをそのままとはいかないので、適当にテーマを定めた結果、IT企業に勤めているほとんどの方が使ったことがあるWinMergeをサイレントインストールするバッチを作ったので、ご紹介します。
動作確認した環境
項目 | バージョンなど | 備考 |
---|---|---|
OS | Windows10 | なし。 |
WinMerge | 2.16.8.1 | こちらから取得。 |
サイレントインストールのコマンド
こちら↓がコマンドになります。
1 |
[インストーラーのパス] /SILENT |
こちら↓が実際の例です。
1 |
WinMerge-2.16.8-jp-1-x64-Setup.exe /SILENT |
インストーラーのオプションについて
次のコマンドを実行すると、ヘルプ表示され、インストーラーに指定できるオプションが確認できます。
※"/?"の部分は"/HELP"でも代替えできます。
1 |
[インストーラーのパス] /? |

ちなみに、今回作成したバッチは、次のオプションを使用します。
- /SILENT ・・・ サイレントインストールするためのオプション。
- /NORESTART ・・・ インストール後に再起動しないようにするオプション。
- /LOG="filename" ・・・ インストーラーのログを出力するファイル名。
サイレントインストールのバッチプログラム
フォルダ構成
次のようなフォルダ構成を想定しています。
※ルートディレクトリごと任意の場所に配置し、バッチプログラムを「管理者として実行」すると動作します。

また、バッチを実行するとルートディレクトリ直下に、"log"という名前のフォルダを作成します。
logフォルダには、次のログファイルを作成するよう組んでいます。
ファイル名 | 内容 |
---|---|
WinMerge_bat.log | バッチプログラムのログを出力するファイル。 |
WinMerge_exe.log | インストーラー側のログを出力するファイル。 |
バッチプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
@ECHO OFF REM =============================================== REM WinMergeサイレントインストールバッチ REM REM [実行前提] REM 本バッチを管理者として実行すること。 REM REM [実行結果] REM 0:成功、1:エラー REM =============================================== REM =============================================== REM 変数定義 REM =============================================== REM ルートディレクトリパス SET ROOT_PATH=%~dp0 REM ログフォルダパス SET LOG_FOLDER_PATH=%ROOT_PATH%log\ REM 本バッチのログファイルパス SET LOG_FILE_PATH=%LOG_FOLDER_PATH%WinMerge_bat.log REM インストーラーのログファイルパス SET LOG_EXE_PATH=%LOG_FOLDER_PATH%WinMerge_exe.log REM インストーラーのパス SET INSTALLER_PATH=%ROOT_PATH%installer\WinMerge-2.16.8-jp-1-x64-Setup.exe REM =============================================== REM 前処理 REM =============================================== REM ログフォルダ作成 MKDIR %LOG_FOLDER_PATH% REM ログファイルに実行毎の区切り文字を出力 ECHO ------------ 実行開始日時: %DATE% %TIME% ------------ >>%LOG_FILE_PATH% REM =============================================== REM 実行前提のチェック REM =============================================== REM 管理者権限で実行していない場合は処理終了。 OPENFILES > NUL IF %ERRORLEVEL% NEQ 0 ( ECHO [ERROR]管理者権限で実行してください。 >>%LOG_FILE_PATH% EXIT /B 1 ) REM =============================================== REM インストール REM =============================================== REM インストール処理。 CALL :INSTALL REM 処理終了。 /B以降は不要かも。 EXIT /B %ERRORLEVEL% REM ---------------------------------------------- REM サブルーチン REM ---------------------------------------------- REM インストール処理 :INSTALL REM インストール REM /SILENT :サイレントインストール REM /NORESTART:再起動しない REM /LOG= :インストーラーのログ出力先 %INSTALLER_PATH% /SILENT /NORESTART /LOG=%LOG_EXE_PATH% REM インストール結果判定 IF %ERRORLEVEL% == 0 ( REM ■成功した場合 ECHO [INFO ]インストールが完了しました。 >>%LOG_FILE_PATH% EXIT /B 0 ) ELSE ( REM ■エラーの場合 ECHO [ERROR]インストール中にエラーが発生しました。 >>%LOG_FILE_PATH% EXIT /B 1 ) |
以上となります。
お仕事や学習の参考になれば嬉しいです。