0
0

More than 1 year has passed since last update.

buildした後に, buildエラーが発生していなかった場合 対象のソフトを自動的に起動するバッチファイルの作成

Posted at

背景

  • 以下の失敗を防止し, 作業の効率化を計る為に、
    buildとソフトの起動を一度の操作で行うバッチファイルを作成した。

    • 失敗の例
      • build中に他の作業を始め、その作業に集中してしまい、buildした方の作業を放置する。
        • 漫画を読んだり、SNSを確認したりして時間を浪費してしまう。
      • buildをしたか不安になり、何度もbuildしてしまう。
      • 変更後buildを忘れてアプリを起動する。

コード

ローカルリポジトリの切り替えが必要ない場合

@echo off
cd %PrivateRepository%
dotnet build

if %errorlevel%==0 (start "" "%AmongUs%\Among Us") else ( pause ) 

ローカルリポジトリの切り替えが必要な場合

@chcp 65001
@echo off

:Select_Input
echo +-------------------------------------------------------------------+
echo  どのLocalRepositoryを使用していますか? 該当する数字を入力してください。
echo      1. Private_Repository
echo      2. Public_Repository
echo +-------------------------------------------------------------------+
Set /P INPUT_NO=
if "%INPUT_NO%"=="1" GOTO :Private_Repository
if "%INPUT_NO%"=="2" GOTO :Public_Repository
GOTO :Select_Input

:Private_Repository
echo +--------------------------------+
echo   Private_Repository に移動します。
echo +--------------------------------+
cd %PrivateRepository%
GOTO :Build_And_Start

:Public_Repository
echo +--------------------------------+
echo   Public_Repository に移動します。
echo +--------------------------------+
cd %PublicRepository%
GOTO :Build_And_Start

:Build_And_Start
if %errorlevel%==0 (start "" "%AmongUs%\Among Us") else ( pause ) 

説明

%[環境変数名]%

  • コード
    • %PrivateRepository%
    • %PublicRepository%
    • %AmongUs%

  • build対象のフォルダ 及び 起動ファイルを, 環境変数で指定しています。
    • build対象のフォルダを環境変数で指定している理由。
      • PCを複数台数使用していて, 更にこのバッチファイルを共用ファイルとして使用しているから。

    • 起動ファイルを環境変数で指定している理由。
      • 元々, build先が環境変数で指定している為, そのまま流用した。
      • フォルダ名等を変更した際に 一括で変更できる為, 環境変数を使用するのが便利である。

cd %[環境変数名]%

  • build対象のフォルダに移動する。

%errorlevel%

  • 直前のコマンドでエラーが発生しているか確認する。
    • 0が返った場合
      • 正常に処理ができた為, build後のファイルを起動する。
    • 0以外が返った場合
      • buildエラーが発生した為起動せず, 代わりに入力受付を行いターミナルを閉じない事により, エラーを確認できるようにする。

start "" "%AmongUs%\Among Us"

  • ファイルを起動する。
    • このコードの場合, %AmongUs%の中にあるAmong Us.exeを起動している。
    • %AmongUs%はbuild先でもある。

@chcp 65001

:[ラベル名]

  • GOTO で飛ぶ際の指定先です。

echo

  • プロンプトに文字を表示します。

Set /P [変数名]=

  • 変数を宣言し, ユーザの入力を待ちます。
  • 入力されると, 変数に代入されます。

GOTO

  • if "%INPUT_NO%"=="〇" でユーザが入力した文字を判定します。
      • if "%INPUT_NO%"=="1" GOTO :Private_Repository
        • 1が入力された場合, ラベル[:Private_Repository]に処理を飛ばす。
      • GOTO :Select_Input
        • 此処の処理に達した場合(入力値が指定しての物ではなかった場合), 最初の処理に戻る。

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0