バッチファイル内で別ファイルからバージョン番号を取得して変数として使用する

概要

バッチファイル内で使用する変数として、別ファイル内に書かれているバージョン番号を取得して使用する。
以下ではAndroidアプリ開発で使用するbuild.gradleファイル内からバージョン番号を取得する。

build.gradleファイル

以下のversionName "1.0.0"の部分から1.0.0を取得する

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.0"
...

バッチファイル

for /f "tokens=2" %%i in ('findstr "versionName" build.gradle') do (
    set VERSION=%%i
)
set VERSION=%VERSION:"=%
echo VERSION=%VERSION%

取得手順は以下。

  1. findstrコマンドでversionNameの含まれた行をbuild.gradleファイルから抽出する。ここではversionName "1.0.0"が出力される。
  2. for文でversionName "1.0.0"の2列目を取得してVERSIONに保存する。
    *for文のオプション"tokens=2"を指定すると2列目の値が変数%%iに保存される。ここでは"1.0.0"が保存される。
  3. ダブルクウォートを外す。
    *ダブルクォートの文字"を空文字列に置換している。

実行結果

VERSION=1.0.0