◆ csc.exe か jsc.exe でコンパイル
  ◆ 開発用ツール無い PC でもだいたい入ってる

ちょっとしたことをする exe ファイルを作りたいときがあります
bat ではなく またランタイムの exe とスクリプトが別になる Node.js とか PHP でもなく単体 exe です
環境は開発用のツールは特に入ってない一般的な Windows PC です
そして できる限り早く楽に作るのが目的です

スクリプト系の言語は無しなので C/C++ などネイティブなものや C# など .NET Framework あたりです
C/C++ はちょっとしたこと程度なら書く難易度は低いですが Windows で VisualStudio も入ってないとコンパイルができません
Cygwin や MinGW があれば gcc くらいデフォで入ってそうですが そういうのは入ってません
コンパイラ入れる手間があります

Rust や Go もコンパイラがいりますし 楽さ的には gcc が一番軽い?

.NET Framework は VisualStudio がいるので C# は候補にいれてなかったのですが C# をコンパイルできる csc.exe は Windows にデフォルトで入ってる .NET Framework でも入ってるようでした
そういえば昔こんな記事書いてたっけ(完全に忘れてた)

ただ 今回はそれで終わりではなく jsc というのを見つけました
JavaScript を exe にできるというものです

JScript とはちょっと違って JScript.NET らしいです
VB.NET みたいなものなのですかね
JScript とは違うので WSH の機能 Echo とかができません
代わりに .NET の機能が使えます
なんかおもしろそうです
が 結構古いもので C# のように更新されてないのが残念です
V8 の JavaScript エンジンで .NET を使えるようなの作ってくれればいいのに

ES2015 などはもちろん対応してないので JavaScript 機能的にはいまいちですが 大したことしないのなら C# のめんどうな部分を書かなくていいので楽に書けます
例えば引数を改行区切りで出力するならこれだけです

import System
print(Environment.GetCommandLineArgs().join("\n"))

コンパイルコマンドは jsc.exe に JavaScript ファイルを渡すだけです

jsc.exe p.js

jsc.exe の場所はこの辺にあります

C:\Windows\Microsoft.NET\Framework64\v2.0.50727
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
C:\Windows\Microsoft.NET\Framework\v2.0.50727
C:\Windows\Microsoft.NET\Framework\v4.0.30319

Babel で JScript への変換もありますし もしかしたらいろいろ使いみちある気もします
https://babeljs.io/docs/en/babel-plugin-transform-jscript


……今回は JavaScript 関係ないなと思ってたのになぜか JavaScript (Jscript) 記事になってました