Running Javascript with CScript?

给你一囗甜甜゛ 提交于 2020-01-21 02:39:09

问题


I'm trying to learn how to run Javascript (instead of VBScript) using CScript.exe, but when I try, I get an error:

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

I thought this is possible -- any idea what's wrong?


回答1:


Setting the registry with regsvr32 did not work for me. Also, I don't want it, since I want my .js to be linked with a plain text editor.

But there is a command line option //E for cscript which makes the job:

cscript //E:jscript hello.js



回答2:


A very simple fix: use assoc.

c:\>assoc .js=JSFile

(Mine had become associated with a text editor at some point.)




回答3:


It's worth to mention that rplantiko's solution works even if the extension of the filename is not .js. This allows for putting .js code into a .cmd file and running as a batch, forming a single-file solution that is fully portable without preliminary steps (like assoc).

For example, if you create a test.cmd file with the following content, you'll be able to run it by simply clicking on it in Explorer, or by drag&drop another file over its icon:

@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(","));

The lines between @then ... @end are batch commands interpreted by cmd.exe. The last command is goto :eof to skip the rest of the file. The lines after @end are interpreted by cscript.exe.




回答4:


It turns out that the .js extension wasn't associated with JSFile in the registry. Doing so fixed the problem.




回答5:


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




回答6:


Had this problem, too, and I solved ...

1.- locate wsh.inf, the installation file for windows scripting host in %windir%\inf

2.- right-click on wsh.inf and choose install.




回答7:


You should be able to run this command to fix the error:

regsvr32 %systemroot%\system32\vbscript.dll



来源:https://stackoverflow.com/questions/7189269/running-javascript-with-cscript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!