用CScript运行Javascript?

时间:2011-08-25 09:33:59

标签: windows-7 windows javascript wsh

我正在尝试学习如何使用CScript.exe运行Javascript(而不是VBScript),但是当我尝试时,我收到错误:

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

thought这是可能的 - 任何想法是什么问题?

7 个答案:

答案 0 :(得分:23)

一个非常简单的修复:使用assoc

c:\>assoc .js=JSFile

(我的某些时候已经与文本编辑器联系了。)

答案 1 :(得分:22)

使用regsvr32设置注册表对我不起作用。另外,我不想要它,因为我希望我的.js与纯文本编辑器链接。

但是cscript有一个命令行选项//E来完成这项工作:

cscript //E:jscript hello.js

答案 2 :(得分:8)

值得一提的是rplantiko's solution即使有效也是如此 文件名的扩展名不是.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解释。

答案 3 :(得分:5)

.js JSFile扩展程序与注册表中的{{1}}无关。turns out这样做可以解决问题。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

也有这个问题,我解决了......

1.-找到wsh.inf%windir%\inf

中Windows脚本主机的安装文件

2.-右键点击wsh.inf并选择 install

答案 6 :(得分:-1)

您应该能够运行此命令来修复错误:

regsvr32 %systemroot%\system32\vbscript.dll