Ответ 1
получается, что расширение .js
не было связано с JSFile
в реестре. Это устранило проблему.
Я пытаюсь научиться запускать Javascript (вместо VBScript) с помощью CScript.exe, но когда я пытаюсь, я получаю сообщение об ошибке:
cscript temp.js
Input Error: There is no script engine for file extension ".js".
I мысль это возможно - любая идея, что не так?
получается, что расширение .js
не было связано с JSFile
в реестре. Это устранило проблему.
Очень простое исправление: используйте assoc.
c:\>assoc .js=JSFile
(В какой-то момент Mine связался с текстовым редактором.)
Настройка реестра с помощью 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.exe. Последняя команда goto :eof
, чтобы пропустить остальную часть файла. Строки после @end
интерпретируются cscript.exe.
assoc.js = JSfile ftype jsfile = C:\Windows\System32\Cscript.exe "% 1" % *
Если бы эта проблема тоже, и я решил...
1.- найдите wsh.inf
, установочный файл для хоста сценариев Windows в %windir%\inf
2.- щелкните правой кнопкой мыши по wsh.inf
и выберите install
.
Вы можете запустить эту команду, чтобы исправить ошибку:
regsvr32 %systemroot%\system32\vbscript.dll