-
-
Save tatesuke/ee400a817f70a40d3f4e to your computer and use it in GitHub Desktop.
Something like Shebang for Windows
ウィンドウズ向けの「シバン」のようなもの。一時ファイルを使います。「.bat」で保存する。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@SET /P X=/*<NUL > "_TEMP_" & TYPE "%~f0" >> "_TEMP_" & jrunscript -l js -f "_TEMP_" %* & DEL "_TEMP_" & EXIT /B & rem */ | |
// これ以降の行はスクリプトがかける | |
print("hoge"); | |
//【何をやっているのか】--------------------------------------------------------------------------- | |
// 自分自身を丸々コピーした一時ファイルを作成してインタプリタに渡すだけ。 | |
// ただし、コピーの際に「シバン行」をコメントアウトしてやることでシバン行は無視されます。 | |
// | |
// ●@SET /P X=/*<NUL > "_TEMP_" | |
// jsのコメント開始を示す「/*」を「__TEMP__」というファイルに出力します。 | |
// echoコマンドでもいいのですが改行が出力されて行が1行ずれちゃうんですよね。 | |
// 追記:というか、「//」でもいいか。 | |
// | |
// ●TYPE "%~f0" >> "_TEMP_" | |
// 「__TEMP__」というファイルに自分自身を丸っと追記します。 | |
// | |
// ●jrunscript -l js -f "_TEMP_" %* | |
// 「__TEMP__」というファイルを指定してインタプリタを起動します。 | |
// | |
// ●DEL "_TEMP_" | |
// スクリプトの実行後、一時ファイルを削除します。 | |
// | |
// ●EXIT /B | |
// コマンドプロンプトでこれ以降の行の実行をしないようにします。 | |
// | |
// ● rem */ | |
// これが味噌。ここにjsのコメント終了を示す「*/」記述しておくことによって | |
// インタプリタが一時ファイルを読み込むときにこの行だけ無視してくれるのです。 | |
// | |
// 【その他】 | |
// コメントアウトの方法とコマンドさえ変えてしまえば一応どんな言語にも使える気がします。 | |
// 一時ファイルを使ってしまうのであまりキレイじゃないですし、同時実行とかファイル分割とか不可能ですけど。 | |
// でも、この方法を使うのって、1ファイルで収まるようなちょっとした用途だと思うのであんまり問題無さそう? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment