明天我打算使用JavaScript参加一个信息学竞赛(BIO)。但是,我不能指望考官有一台带有良好JavaScript引擎的浏览器,所以我希望使用微软的JScript。
然而,文档实在太烂了。有人可以发一些示例代码吗?示例代码应该读入一行文本,对其调用foo(string)
,并将输出回显到命令行。
同样,我该如何运行它呢?wscript.exe PATH_TO_JS_FILE
可行吗?
明天我打算使用JavaScript参加一个信息学竞赛(BIO)。但是,我不能指望考官有一台带有良好JavaScript引擎的浏览器,所以我希望使用微软的JScript。
然而,文档实在太烂了。有人可以发一些示例代码吗?示例代码应该读入一行文本,对其调用foo(string)
,并将输出回显到命令行。
同样,我该如何运行它呢?wscript.exe PATH_TO_JS_FILE
可行吗?
CSCRIPT.EXE
执行脚本。
例如:CSCRIPT.EXE myscript.js
这是因为来自WSCRIPT
的WScript.Echo
将创建一个对话框,而来自CSCRIPT
的输出将在控制台上输出一行。在命令窗口(CMD)中运行此命令。var x = WScript.StdIn.ReadLine();
在这里,StdIn
是一个TextStream对象。还有一个StdOut
可以替代WScript.Echo()
使用...
将foo(x)
的输出写入控制台:(必须在CSCRIPT
下运行)
WScript.Echo(foo(x));
你可以使用WScript
对象来确定你正在运行的引擎,这方面已经有一个相关的问题/答案(VBScript,但在JScript下使用相同的对象),请看这里。如果你希望确保你的程序只在命令行中运行,你可以使用WScript.StdIn
和WScript.StdOut
对象/属性:
var myString = WScript.StdIn.ReadLine();
WScript.StdOut.WriteLine(myString);
如果你希望使用cscript.exe
运行程序,那么这很简单。但如果你想要将其作为GUI程序,考虑到JScript没有原生的InputBox
函数像VBScript
那样,会比较困难。然而,正如这里所描述的那样,我们可以使用Windows脚本主机(WSH)。创建一个.wsf
文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<job id="testJScriptInputBox">
<script language="VBScript">
<![CDATA[
Function WSHInputBox(Message, Title, Value)
WSHInputBox = InputBox(Message, Title, Value)
End Function
]]>
</script>
<script language="JScript">
<![CDATA[
var vbOKOnly = 0; // Constants for Popup
var vbInformation = 64;
var title = "InputBox function for JScript";
var prompt = "Enter a string: ";
var WshShell = WScript.CreateObject("WScript.Shell");
var result = WSHInputBox(prompt, title, "New York");
if (result != null)
{ // Cancel wasn't clicked, so get input.
var intDoIt = WshShell.Popup(result,
0,
"Result",
vbOKOnly + vbInformation);
}
else
{ // Cancel button was clicked.
var intDoIt = WshShell.Popup("Sorry, no input",
0,
"Result",
vbOKOnly + vbInformation);
}
]]>
</script>
</job>
并使用 cscript.exe
或 wscript.exe
运行它。或者,您还可以使用HTML应用程序(HTA)来创建更复杂的GUI界面。