12

明日、JavaScriptを使って情報学コンペティション(BIO)に参加する予定です。しかし、私は適切なJavaScriptエンジンを備えたブラウザーを持っている審査官に頼ることができないので、代わりにMicrosoftのJScriptを使用したいと思っていました。

ただし、ドキュメントは率直に言って、がらくたです。foo(string)誰かがテキスト行を読み取り、それを呼び出し、出力をコマンドラインにエコーするサンプルコードを投稿できますか?

同様に、実際に実行するにはどうすればよいですか?トリックをしますwscript.exe PATH_TO_JS_FILEか?

4

2 に答える 2

14

コマンドラインを使用している場合は、を使用してスクリプトを実行しますCSCRIPT.EXE。つまりCSCRIPT.EXE myscript.jsWScript.EchofromWSCRIPTはダイアログボックスを作成し、fromCSCRIPTはコンソールに行を出力するためです。これをコマンドウィンドウ(CMD)で実行します。

コンソールから変数への行の読み取り:

var x = WScript.StdIn.ReadLine();

TextStreamオブジェクトStdInはどこにありますか。の代わりに使用できるものもあります...StdOutWScript.Echo()

の出力をコンソールに書き込むfoo(x):(で実行する必要がありますCSCRIPT

WScript.Echo(foo(x));

オブジェクトを使用して、WScript実行しているエンジンを判別できます。そのための質問/回答があります(VBScriptですが、JScriptでは同じオブジェクトを使用します

于 2011-12-08T15:08:24.543 に答える
4

プログラムがコマンドラインでのみ実行されるようにしたい場合は、WScript.StdInおよびWScript.StdOutオブジェクト/プロパティを使用できます。

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

で実行しcscript.exeます。ただし、GUIプログラムにしたい場合は、JScriptにのInputBoxようなネイティブ関数がないことを考えると少し難しいVBScriptです。ただし、ここで説明するように、 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.exeまたはのいずれかで実行しますwscript.exeまたは、 HTMLアプリケーション(HTA)を使用して、より複雑なGUIを作成することもできます。

于 2020-10-31T23:02:07.590 に答える