BatファイルとしてNode.jsのJavaScriptファイルを動かす方法 二番煎じ

BatファイルとしてNode.jsのJavaScriptファイルを動かす方法 二番煎じ:

Batファイルとして Node.js の JavaScript ファイルを動かす方法

という記事を読んで、とても面白く、実用性もありそうだと思ったのですが、エラーを利用しているようだったので、他の方法を考えてみました。


example.js.bat
rem:;//&node %0 %*&@echo;&@pause&@exit /b 
 
process.argv.forEach((arg, i) => 
   console.log(`argv[${i}] = ${arg}`)); 
実行結果:

D:\node_bat> example.js.bat abc 123 
 
D:\node_bat> rem:;// & node example.js.bat abc 123 & 
argv[0] = C:\Program Files\nodejs\node.exe 
argv[1] = D:\node_bat\example.js.bat 
argv[2] = abc 
argv[3] = 123 
 
続行するには何かキーを押してください . . . 


解説


batファイルとしてみたとき

rem:;//&node %0 %*&@echo;&@pause&@exit /b 
は、5つのコマンドrem:;//node %0 %*echo;pauseexit /bに分解されます。

rem:;//は、ただのコメントです。

node %0 %*では、nodeコマンドにバッチファイル自身の名前と、バッチファイルに渡された全ての引数を渡して呼び出しています。

echo;で改行を出力してpauseで一時停止、最後にexit /bでバッチファイルの処理を終了します。


JavaScriptとしてみたとき

rem:;//&node %0 %*&@echo;&@pause&@exit /b 
rem:はラベルで、直後の空文(;)にかかっています。その直後に//が続いているので、残りは行コメントになります。


課題

remコマンドに@をつけたり、最初にecho offをしようとするとJavaScriptとして成り立たなくなるので、rem:;// &が出力されてしまいます。

バッチファイル得意な人、もっと良い方法を教えてください。

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2024-02-12 22:08:06 RSSフィード2024-02-12 22:00分まとめ(7件)