Windows 7 用CScript运行Javascript?
我正在尝试学习如何使用CScript.exe运行Javascript(而不是VBScript),但当我尝试时,出现了一个错误:Windows 7 用CScript运行Javascript?,windows-7,windows,javascript,wsh,Windows 7,Windows,Javascript,Wsh,我正在尝试学习如何使用CScript.exe运行Javascript(而不是VBScript),但当我尝试时,出现了一个错误: cscript temp.js Input Error: There is no script engine for file extension ".js". I这是可能的--知道怎么回事吗?您应该能够运行此命令来修复错误: regsvr32%systemroot%\system32\vbscript.dll表明.js扩展与注册表中的JSFile没有关联。这样做修复
cscript temp.js
Input Error: There is no script engine for file extension ".js".
I这是可能的--知道怎么回事吗?您应该能够运行此命令来修复错误:
regsvr32%systemroot%\system32\vbscript.dll
表明.js
扩展与注册表中的JSFile
没有关联。这样做修复了问题。用regsvr32设置注册表对我来说不起作用。另外,我不想要它,因为我希望我的.js与纯文本编辑器链接
但是cscript有一个命令行选项/E
,它使作业:
cscript //E:jscript hello.js
一个非常简单的修复方法:使用
c:\>assoc.js=JSFile
(我的在某个时候与文本编辑器关联。)也有这个问题,我解决了 1.-在
%windir%\inf
2.-右键单击wsh.inf并选择安装
ftype jsfile=C:\Windows\System32\Cscript.exe“%1”%*值得一提的是,即使 文件名的扩展名不是.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(","));
@如果(@code节==@Batch)@那么
@cscript//Nologo//E:jscript“%~f0”“测试参数”%*&暂停和转到:eof
@结束
Echo(“你好世界”);
对于(var i=0,n=WScript.Arguments.Length,args=[];i
@和
之间的行@end
是由cmd.exe解释的批处理命令。最后一个命令是goto:eof
,用于跳过文件的其余部分。@end
后面的行由cscript.exe解释。如果您不想替换文件关联,这个答案是最好的。我故意将.js与文本编辑器关联,很容易将此错误与其他错误混淆。非常好!:)可能99%的人只知道并使用cmd脚本的最基本的部分[1],所以这只需要很少的麻烦就可以增加大量的功能。绝对是一个为片段收集,谢谢。[1] 好的,别炒我鱿鱼,这太离谱了。@robert4这太好了,应该引起更多的注意,即使是在今天PowerShell占据主导地位的时候。我非常了解batch,但不知道这个技巧,并且仍然很难准确地理解它在cmd和cscript中是如何工作的。它会通过VBScript获得吗?(我要测试)干得好。如果有一个网站或某个地方有更多的信息或像这样的技巧?