CMD/BAT плюс JavaScript

Как уже отмечалось, из CMD/BAT файлов можно вызывать JScript. А можно ли их объединить в один файл? Оказывается, можно!
Jim Lawless уже достаточно давно предложил оригинальный способ как этого добиться.
Рассмотрим на примере.
 

rem ( /* @echo off cscript /nologo /e:javascript %~nx0 exit */ ) function rem() { WScript.StdOut.WriteLine("Hello, world!"); }



С точки зрения интерпретатора CMD/BAT данный пример выглядит как
комментарий - rem ( /*
тело программы
что-то еще, до которого интерпретатор никогда не дойдет до анализа.

С токи зрения JScript этот же пример выглядит как вызов процедуры rem и ее описания.
 

rem ( /* длинный многострочный комментарий */ ) function rem() { WScript.StdOut.WriteLine("Hello, world!"); }



Вариант с условной компиляцией:
 

@if (true == false) @end /* @echo off cscript /nologo /e:javascript %~dpf0 echo Hello from bat pause goto :EOF */ WScript.Echo('Hello from JScript');


Конечно, предлагаемые варианты несколько снижают наглядность программы, но преимущество - использовать только один файл - во многих случаях того стоит.

Категория: Твики, BAT, CMD | Добавил: masterov (08.10.2017) E W
Просмотров: 9 | Теги: команда, cmd, консоль | Рейтинг: 0.0/0
Всего комментариев: 0
avatar