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:;// &
が出力されてしまいます。バッチファイル得意な人、もっと良い方法を教えてください。
コメント
コメントを投稿