背景
- 以下の失敗を防止し, 作業の効率化を計る為に、
buildとソフトの起動を一度の操作で行うバッチファイルを作成した。
- 失敗の例
- build中に他の作業を始め、その作業に集中してしまい、buildした方の作業を放置する。
- 漫画を読んだり、SNSを確認したりして時間を浪費してしまう。
- buildをしたか不安になり、何度もbuildしてしまう。
- 変更後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を複数台数使用していて, 更にこのバッチファイルを共用ファイルとして使用しているから。
- PCを複数台数使用していて, 更にこのバッチファイルを共用ファイルとして使用しているから。
- 起動ファイルを環境変数で指定している理由。
- 元々, build先が環境変数で指定している為, そのまま流用した。
- フォルダ名等を変更した際に 一括で変更できる為, 環境変数を使用するのが便利である。
- build対象のフォルダを環境変数で指定している理由。
cd %[環境変数名]%
- build対象のフォルダに移動する。
%errorlevel%
- 直前のコマンドでエラーが発生しているか確認する。
- 0が返った場合
- 正常に処理ができた為, build後のファイルを起動する。
- 0以外が返った場合
- buildエラーが発生した為起動せず, 代わりに入力受付を行いターミナルを閉じない事により, エラーを確認できるようにする。
- 0が返った場合
start "" "%AmongUs%\Among Us"
- ファイルを起動する。
- このコードの場合,
%AmongUs%
の中にあるAmong Us.exe
を起動している。 -
%AmongUs%
はbuild先でもある。
- このコードの場合,
@chcp 65001
- バッチファイルの文字コードを
UTF-8
として明示する。- これを使用しないと, 日本語の操作説明が文字化けしてしまう。
- 参照 : UTF-8のバッチファイルが文字化けする時の対処3選
:[ラベル名]
- GOTO で飛ぶ際の指定先です。
echo
- プロンプトに文字を表示します。
Set /P [変数名]=
- 変数を宣言し, ユーザの入力を待ちます。
- 入力されると, 変数に代入されます。
GOTO
-
if "%INPUT_NO%"=="〇"
でユーザが入力した文字を判定します。- 例
-
if "%INPUT_NO%"=="1" GOTO :Private_Repository
-
1
が入力された場合, ラベル[:Private_Repository
]に処理を飛ばす。
-
-
GOTO :Select_Input
- 此処の処理に達した場合(入力値が指定しての物ではなかった場合), 最初の処理に戻る。
-
- 例
参考資料
- 環境変数
- アプリの起動
- GOTOとラベル
- ユーザ入力を受け付け, 入力値によって処理を変更するコード。