Стоит отметить, что решение rplantiko работает, даже если расширение имени файла не является .js.Это позволяет помещать код .js в файл .cmd и запускать его как пакет, создавая однофайловое решение, которое полностью переносимо без предварительных действий (например, assoc
).
Например, если вы создаетеtest.cmd
файл со следующим содержимым, вы сможете запустить его, просто щелкнув по нему в Проводнике, или перетащив другой файл поверх его значка:
@if (@CodeSection == @Batch) @then
@cscript //Nologo //E:jscript "%~f0" "test arg" %* & pause & goto :eof
@end
WScript.Echo("hello world");
for (var i = 0, n = WScript.Arguments.Length, args = []; i < n; ++i)
args.push(WScript.Arguments(i));
WScript.Echo("arguments: " + args.join(","));
Строки между @then
... @end
- пакетные команды, интерпретируемые cmd.exe.Последняя команда - goto :eof
, чтобы пропустить остальную часть файла.Строки после @end
интерпретируются cscript.exe.