BatファイルとしてNode.jsのJavaScriptファイルを動かす方法 二番煎じ
BatファイルとしてNode.jsのJavaScriptファイルを動かす方法 二番煎じ:
「Batファイルとして Node.js の JavaScript ファイルを動かす方法」
という記事を読んで、とても面白く、実用性もありそうだと思ったのですが、エラーを利用しているようだったので、他の方法を考えてみました。
実行結果:
は、5つのコマンド
バッチファイル得意な人、もっと良い方法を教えてください。
「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
rem:;//・node %0 %*・echo;・pause・exit /bに分解されます。rem:;//は、ただのコメントです。node %0 %*では、nodeコマンドにバッチファイル自身の名前と、バッチファイルに渡された全ての引数を渡して呼び出しています。echo;で改行を出力してpauseで一時停止、最後にexit /bでバッチファイルの処理を終了します。
JavaScriptとしてみたとき
rem:;//&node %0 %*&@echo;&@pause&@exit /b
rem:はラベルで、直後の空文(;)にかかっています。その直後に//が続いているので、残りは行コメントになります。
課題
remコマンドに@をつけたり、最初にecho offをしようとするとJavaScriptとして成り立たなくなるので、rem:;// &が出力されてしまいます。バッチファイル得意な人、もっと良い方法を教えてください。
コメント
コメントを投稿