前置き
はいこんにちは。最近ノベルゲーム製作をしていて、あっちこっちのファイルやアプリを開く必要があるため、ゲーム制作に取り掛かるための前準備でさえ一手間かかるようになってきました。
はいこんにちは。ゲーム製作お疲れさまです。確かに開発の規模が大きくなってくると開発準備だけで一苦労ですよね。
そこで今回は一つのバッチファイルをダブルクリック実行するだけで、全ての準備が整うプログラムを作ったぞい。
わーい。時短用プログラムきたー。
基本的にstartコマンドとパスだけで構成されておりますので、何をやっているか一目両全だと思います。何かの参考になるものがあればコピペして使ってみてください。
おまけ要素ですが、最後にバッチファイルから5秒間だけ一言応援してもらえるようです。
作業環境を一気に整えるプログラム本体
@echo off rem 作業環境を一気に整えるプログラム rem ①任意のパスのフォルダを開く start explorer "C:\K林ノベルゲーム館\0000実環境\NovelGames" start explorer "C:\K林ノベルゲーム館\キャラ絵生成会場" rem ②任意のパスの画像を開く start "" "C:\K林ノベルゲーム館\0000実環境\NovelGames\002Ryukku\data\img\CharaImg\kbayashi1-1.png" rem ③任意のURLのウェブサイトを起動(既定のブラウザで) start "" "https://www.youtube.com/" start "" "https://kbayashizemi.hatenablog.com/" rem ④任意のローカルhtmlファイルを起動 start "" "C:\K林ノベルゲーム館\0000実環境\index.html" rem ⑤任意のエクセルファイル起動 start "" "C:\K林ノベルゲーム館\0000実環境\NovelGames\002Ryukku\シナリオ製作「リュックサック事件」.xlsm" rem ⑥クリップスタジオ起動(自分のPCではこのパスで起動しました) start "" "C:\Program Files\CELSYS\CLIP STUDIO 1.5\CLIP STUDIO\CLIPStudio.exe" echo ************************ echo. echo 作業頑張ってね。 echo. echo ************************ rem ⑦↑のメッセージを5秒間だけ表示して自身を閉じる。 timeout /t 5 > nul exit
ちょっとだけ解説
①~⑥ startコマンドとパスの組み合わせ
①~⑥はstartコマンドとパスを組み合わせているだけです。ここでは全てstartコマンドを使っていますが、実はstartコマンドをつけずに、単にパスのみの入力でも動作することはあります。
へー。なんでstartコマンドなしでも動くのにあえてstartコマンドを使っているんです?
startコマンドを使わずにパスのみで動作させると、そのパスで開いた対象を閉じるまで処理を受け付けない状態、つまり処理待ち状態となってしまうことがあるのだ。たとえばパスのみのコマンドでエクセルファイルを開いたら、そのエクセルファイルを閉じるまでバッチファイルが処理待ち状態となり、後のコマンドがつっかえてしまうのだ。
なるほど。パスのみだと処理待ち状態になる可能性があるんですね。それで全てのコマンドを一気に流すためにstartコマンドを使用していると。
そうである。ちなみにstartコマンドは「start "" "任意のパス"」という使い方をしているが、「start」と「任意のパス」の間にある謎のダブルクォーテーションは必要である。これなしでは当プログラムは動かない。
へー? なんでです? コマンドを見る感じ、なんか真ん中のダブルクォーテーションは不要っぽい気もしますけど。
いや絶対に必要である。実は当プログラムでのstartコマンドでは直接的に対象のアプリをスタートしているわけではなく、startによって新たなコマンドプロンプトを開いている。その新たにできたコマンドプロンプトで任意のアプリやファイルを実行し、その実行処理が終わると元の呼び出し元のバッチに戻ってくる、という流れになっている。謎のダブルクォーテーションは新しいコマンドプロンプトを開くために必要な要素なのだ。
な、なんと。そんな仕様があったとは。バッチファイルってコマンドは簡単そうに見えて処理は複雑ですね。
……などと、得意気に説明してみましたが、実の所は私もよくわかっていません。全くトンチンカンな説明をしたかもしれないです。というのもstartコマンドは動く時と動かない時と、処理待ち状態になる時とならない時と、色々あるので、騙し騙しで使ってます。現にVSCODEをバッチファイルで起動してみたら、startコマンドをどう使っても、VSCODEを閉じるまでバッチが先に進まない処理待ち状態になっちゃいましたからね。どうなっとんじゃこら。わからんでー。
はははー。それでも動けばいいですよねー。
⑦timeout /t 〇 で〇秒待ち >nul は文字を画面に表示しない
はいこちらの解説は簡単です。事前にechoコマンドで表示した文字を「timeout /t 5」で5秒間だけ待ち状態にし、待ち状態が終わるとexitでバッチファイルを閉じております。なお、「>nul」は通常表示される「〇秒待っています」というメッセージを消し去っています。
ユーザー側からは5秒間だけ見ることが出来る応援メッセージということになりますね。
そうです。ちなみに、5秒待たずとも何かキーを押すと、処理が進行して画面が消えます。
待つのがうざったい時はすぐに消せるんですね。
そのとーり。そしてこれ以上解説することはなーい。
はい今回はバッチファイルで作業準備をする記事でした。さよなら、さよならー。
パソコンカテゴリ一覧↓