ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【Windows】バッチファイルで特定のアプリを自動起動させる方法

 Windowsを使っていて特定のアプリを立ち上げなくてはいけない場合、毎回そのアプリを手動で立ち上げるのが面倒になってくると思います。

 実際自分も3つぐらいのアプリをそれぞれ立ち上げる状態を何度かやっていて「バッチファイルで自動起動させるようにした方が楽なのでは?」と思い、バッチファイルでのアプリ起動を色々調べました。

 今回はその備忘録となります。

 バッチファイル自体あまり自分が書いたことがないので色々と不足な部分もあるかと思いますが、詳細は参考資料に挙げたページ様を参照してください。

 では始めます。


1:バッチファイルについて
 すでにご存じかとは思いますが、軽くバッチファイルについて説明しておきます。

 バッチファイルは拡張子が「.bat」で保存されているファイルです。
f:id:rikoubou:20200923161645p:plain

 テキストエディタ等で開くと中身を確認できます。中身はコマンドプロンプトで実行できる形で記述されています。そしてこのファイルをダブルクリックすると中に記述されたコマンドが実行されます。

 簡単に言うと「コマンドプロンプトで実行するコマンドをファイルとして保存しておき、ダブルクリックで自動起動できるようにしたもの」がバッチファイルになります。


2:バッチファイルで特定アプリの起動
 では本題に入ります。

 バッチファイルで特定アプリを起動させる方法は「call」と「start」の2つがあります。記述方法は以下の通りです。

call [起動したいアプリのパス]
start [起動したいアプリのパス]

 callは同一プロセスでの実行で「ひとつ前のcallアプリが終了するのを待ってから起動」、startは別プロセスでの実行で「前のアプリに関係なく起動」という違いがあります。

 実際にこの2つの起動を比べてみます。以下の2つのサンプルをそれぞれ「call_test.bat」、「start_test.bat」としてそのファイルをダブルクリックして実行してみてください。

・call_test.bat

@echo off

rem メモ帳を起動
call notepad.exe

rem 電卓を起動
call calc.exe

rem コマンドプロンプトを終了
exit /B 0


・start_test.bat

@echo off

rem メモ帳を起動
start notepad.exe

rem 電卓を起動
start calc.exe

rem コマンドプロンプトを終了
exit /B 0

 callの方はメモ帳を終了させた後に電卓が立ち上がりますが、startの方は両方立ち上がります。


3:バッチファイルで特定URLをブラウザで開く
 アプリの実行だけなら2で説明した方法でわかりましたが、特定のURLをブラウザで開きたい場合もあるかと思います。その場合の記述は以下のように引数にURLを渡してあげれば自動的にそのURLを開くことができます。

・url_test.bat

@echo off

rem Edge起動
start microsoft-edge:"https://time.is/ja/"

rem chrome起動
start "C:\Program Files\Google\Chrome\Application\chrome.exe" "https://www.yahoo.co.jp/"

rem コマンドプロンプトを終了
exit /B 0

 上記のようにEdgeの場合は「microsoft-edge:」の後にURLの文字列を、chromeの場合はインストールされているexeまでのパスの文字列とその引数にURLの文字列を記述すれば開くことができます。


 以上がバッチファイルで特定のアプリを自動起動させる方法です。

 基本的にはstartかcallで特定のアプリの.exeファイルのパスを記述すれば開くことができます。

 これを使えば割と色々なことが自動化できると思うので、使っていきたいですね。


・参考資料