如何编写简单的JScript输入/输出程序?

Eri*_*ric 7 javascript wsh jscript

我计划明天使用JavaScript进入信息学竞赛(BIO).但是,我不能依赖考官拥有一个体面的JavaScript引擎,所以我希望改用微软的JScript.

但是,坦率地说,文档是废话.有人可以发布一些示例代码,这些代码读取一行文本,调用foo(string)它,并将输出回显到命令行吗?

同样,我如何实际运行它?会wscript.exe PATH_TO_JS_FILE做的伎俩?

aik*_*eru 12

如果您正在使用命令行,我将使用执行脚本CSCRIPT.EXE.ie:CSCRIPT.EXE myscript.js 这是因为WScript.Echofrom WSCRIPT将创建一个对话框,并从CSCRIPT输出一行到控制台.在命令窗口(CMD)中运行它.

从控制台读取一行到变量:

var x = WScript.StdIn.ReadLine();
Run Code Online (Sandbox Code Playgroud)

哪里StdIn是一个TextStream对象.还有一个StdOut可以用来代替WScript.Echo()......

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

WScript.Echo(foo(x));
Run Code Online (Sandbox Code Playgroud)

您可以使用WScript对象来确定你是下运行,其发动机,有一个问题/答案为(VBScript中,但在JScript中使用相同的对象)这里.


Foa*_*oad 5

如果您想确保您的程序仅在命令行中运行,您可以使用WScript.StdInWScript.StdOut对象/属性:

var myString = WScript.StdIn.ReadLine();
WScript.StdOut.WriteLine(myString);
Run Code Online (Sandbox Code Playgroud)

并运行它cscript.exe。但如果你想让它成为一个 GUI 程序,考虑到 JScript 没有InputBoxVBScript. 但是,如此处所述,我们可以使用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>
Run Code Online (Sandbox Code Playgroud)

并使用cscript.exe或运行它wscript.exe。或者,您也可以使用HTML 应用程序 (HTA)来创建更复杂的 GUI。