我该如何编写一个简单的 JScript 输入/输出程序?

14

明天我打算使用JavaScript参加一个信息学竞赛(BIO)。但是,我不能指望考官有一台带有良好JavaScript引擎的浏览器,所以我希望使用微软的JScript。

然而,文档实在太烂了。有人可以发一些示例代码吗?示例代码应该读入一行文本,对其调用foo(string),并将输出回显到命令行。

同样,我该如何运行它呢?wscript.exe PATH_TO_JS_FILE可行吗?


2
+1,这份文档烂得让实际的垃圾看起来都好看。 - Camilo Martin
2个回答

16
如果您在命令行中使用,请使用CSCRIPT.EXE执行脚本。 例如:CSCRIPT.EXE myscript.js 这是因为来自WSCRIPTWScript.Echo将创建一个对话框,而来自CSCRIPT的输出将在控制台上输出一行。在命令窗口(CMD)中运行此命令。
从控制台读取一行并存入变量:
var x = WScript.StdIn.ReadLine();

在这里,StdIn 是一个TextStream对象。还有一个StdOut可以替代WScript.Echo()使用...

foo(x)的输出写入控制台:(必须在CSCRIPT下运行)

WScript.Echo(foo(x));
你可以使用WScript对象来确定你正在运行的引擎,这方面已经有一个相关的问题/答案(VBScript,但在JScript下使用相同的对象),请看这里

5

如果你希望确保你的程序只在命令行中运行,你可以使用WScript.StdInWScript.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.exewscript.exe 运行它。或者,您还可以使用HTML应用程序(HTA)来创建更复杂的GUI界面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接