【问题标题】:How can I write a simple JScript input/output program?如何编写一个简单的 JAVAScript 输入/输出程序?
【发布时间】:2011-05-25 08:52:03
【问题描述】:

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

但是,坦率地说,文档是垃圾。有人可以发布一些示例代码,读取一行文本,在上面调用foo(string),并将输出回显到命令行吗?

同样,我如何实际运行它? wscript.exe PATH_TO_JS_FILE 会成功吗?

【问题讨论】:

  • +1,文档太烂了,以至于看起来还不错。

标签: javascript wsh jscript


【解决方案1】:

如果您使用命令行,我会使用CSCRIPT.EXE 执行脚本。 即:CSCRIPT.EXE myscript.js 这是因为来自WSCRIPTWScript.Echo 将创建一个对话框,并从CSCRIPT 向控制台输出一行。在命令窗口 (CMD) 中运行它。

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

var x = WScript.StdIn.ReadLine();

其中StdInTextStream object。还有一个StdOut 可以用来代替WScript.Echo()...

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

WScript.Echo(foo(x));

您可以使用WScript 对象来确定您在哪个引擎下运行,对此有一个问题/答案(VBScript,但在 JScript 下使用相同的对象)here

【讨论】:

    【解决方案2】:

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

    var myString = WScript.StdIn.ReadLine();
    WScript.StdOut.WriteLine(myString);
    

    并使用cscript.exe 运行它。但是如果你希望它是一个 GUI 程序,考虑到 JScript 没有像 VBScript 这样的原生 InputBox 函数,这有点困难。然而,正如here 所述,我们可以使用Windows Script Host (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 Application (HTA) 创建更精细的 GUI。

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 2019-11-22
      • 1970-01-01
      • 2019-10-09
      • 2014-02-22
      • 1970-01-01
      • 2023-02-12
      • 2014-11-07
      • 1970-01-01
      相关资源
      最近更新 更多