チカラの技術

電子工作やプログラミング

node.jsスクリプトをダブルクリック実行するバッチ  [windows]

node.jsの実行をちょっとGUIフレンドリーに

こんにちは。

最近はバッチ的なファイル処理やテキスト処理を行うために、
node.jsでスクリプトを組むことが多いのですが、作ったスクリプト
毎回コマンドプロンプトを立ち上げて実行するのは結構手間です。

そこでnode.jsのスクリプトを実行するだけのバッチファイルを作成しました。

作成したバッチファイル

以下のbatファイルを右クリックで保存してください。 http://yukukawano.html.xdomain.jp/util_files/exe_node_js.bat

使い方

① 実行したいnode.jsのファイルと同じフォルダにbatファイルを置いてください。
f:id:powerOfTech:20180927130837p:plain

② batファイルをダブルクリックで実行するとコマンドプロンプトが立ち上がり、
  node.jsファイルを実行する旨が表示され、何かキーを押すと実行されます。

③ 実行後、キーを押すとコマンドプロンプトは終了します。

f:id:powerOfTech:20180927142923p:plain

コードの解説

@echo off
rem 本batファイルを置いたフォルダにある*.jsファイルをnodeで実行する。
rem 複数の*.jsファイルがある場合、一つのみ実行する。

cd /d %~dp0
for /f "usebackq tokens=*" %%a in (`dir /b *.js`) do @set NODE_FILE_NAME=%%a&goto :exit_for
:exit_for

echo 続行すると%NODE_FILE_NAME%を実行します。
echo.

pause

node %NODE_FILE_NAME%

echo.
echo %NODE_FILE_NAME%の実行が完了しました。
pause

4行目のcdでbatファイルが置かれたフォルダに移動しています。
5行目~6行目でカレントのフォルダ内のjavascriptファイル(*.js)を検索し、
最初の一つのファイル名を変数%NODE_FILE_NAME%に代入します。
10行目でnodeにて実行します。

その他コマンドについて:

カスタム例:9行目のpauseを削除すればダブルクリックのみで実行が開始されます。

終わりに

バッチ処理の記述をコードの可読性やOS間のポーティングを含めて考慮した場合、
今回のようにメインのバッチ処理をnode.jsやpythonなどのスクリプト言語で作成し、
実行部分のみOSのバッチファイルで作成するというのも一つの手段だと思います。