node.jsスクリプトをダブルクリック実行するバッチ [windows]
node.jsの実行をちょっとGUIフレンドリーに
こんにちは。
最近はバッチ的なファイル処理やテキスト処理を行うために、
node.jsでスクリプトを組むことが多いのですが、作ったスクリプトを
毎回コマンドプロンプトを立ち上げて実行するのは結構手間です。
そこでnode.jsのスクリプトを実行するだけのバッチファイルを作成しました。
作成したバッチファイル
以下のbatファイルを右クリックで保存してください。 https://www.power-of-tech.com/util_files/exe_node_js.bat
使い方
① 実行したいnode.jsのファイルと同じフォルダにbatファイルを置いてください。
② batファイルをダブルクリックで実行するとコマンドプロンプトが立ち上がり、
node.jsファイルを実行する旨が表示され、何かキーを押すと実行されます。
③ 実行後、キーを押すとコマンドプロンプトは終了します。
コードの解説
@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にて実行します。
その他コマンドについて:
- rem:コメント
- echo:コマンドプロンプトへ出力
- echo:空白行の出力
- pause:入力待ち状態を作る
カスタム例:9行目のpauseを削除すればダブルクリックのみで実行が開始されます。
終わりに
バッチ処理の記述をコードの可読性やOS間のポーティングを含めて考慮した場合、
今回のようにメインのバッチ処理をnode.jsやpythonなどのスクリプト言語で作成し、
実行部分のみOSのバッチファイルで作成するというのも一つの手段だと思います。