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');
Источник.
Конечно, предлагаемые варианты несколько снижают наглядность программы, но преимущество - использовать только один файл - во многих случаях того стоит.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь