Запуск Javascript с CScript? - PullRequest
       13

Запуск Javascript с CScript?

16 голосов
/ 25 августа 2011

Я пытаюсь научиться запускать Javascript (вместо VBScript) с помощью CScript.exe, но при попытке получить сообщение об ошибке:

cscript temp.js
Input Error: There is no script engine for file extension ".js".

Я думал это возможно - есть идеи, что случилось?

Ответы [ 7 ]

23 голосов
/ 17 июля 2012

Очень простое исправление: используйте assoc .

c:\>assoc .js=JSFile

(Мой когда-то ассоциировался с текстовым редактором.)

22 голосов
/ 22 июня 2012

Настройка реестра с помощью regsvr32 у меня не сработала. Кроме того, я не хочу этого, так как я хочу, чтобы мои .js были связаны с простым текстовым редактором.

Но есть опция командной строки //E для cscript, которая выполняет задание:

cscript //E:jscript hello.js
8 голосов
/ 17 апреля 2015

Стоит отметить, что решение 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.

5 голосов
/ 28 августа 2011

оказывается , что расширение .js не было связано с JSFile в реестре.Это решило проблему.

1 голос
/ 17 декабря 2013

assoc .js = JSfile ftype jsfile = C: \ Windows \ System32 \ Cscript.exe "% 1"% *

0 голосов
/ 07 января 2013

Была ли эта проблема тоже, и я решил ...

1.- найдите wsh.inf, установочный файл для хоста сценариев Windows в %windir%\inf

2.- справа- нажмите wsh.inf и выберите install.

0 голосов
/ 25 августа 2011

Вы должны выполнить эту команду, чтобы исправить ошибку:

regsvr32 %systemroot%\system32\vbscript.dll

...