问题
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