我试图学习如何使用CScript.exe运行Javascript(而不是VBScript),但是当我尝试时,我得到一个错误:
cscript temp.js Input Error: There is no script engine for file extension ".js".
我认为这是可能的 – 任何想法有什么不对?
一个非常简单的修复:使用assoc 。
c:\>assoc .js=JSFile
(我的某个时候已经和一个文本编辑器关联了。)
使用regsvr32设置注册表不起作用。 此外,我不想要它,因为我想我的.js与纯文本编辑器链接。
但是有一个命令行选项//E
for cscript它使工作:
cscript //E:jscript hello.js
事实证明 , .js
扩展名与注册表中的JSFile
没有关联。 这样做解决了这个问题。
值得一提的是,即使文件扩展名不是.js, rplantiko的解决方案也能正常工作。 这允许将.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