Запуск Javascript с помощью CScript?

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

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

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

7 ответов


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

c:\>assoc .js=JSFile

(мой стал связан с текстовым редактором в какой-то момент.)


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

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

cscript //E:jscript hello.js

стоит отметить, что решение 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.исполняемый. Последняя команда goto :eof чтобы пропустить остальную часть файла. Строки после @end интерпретируются cscript.исполняемый.


Это получается что


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


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

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

2.- щелкните правой кнопкой мыши на wsh.inf и выбрать install.


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

regsvr32 %systemroot%\system32\vbscript.dll