JScript + 批处理混合文件:删除 "script host" 文本

JScript + batch hybrid file: removing the "script host" text

我有一个 JScript 批处理混合文件,它工作正常,但是 cscript 命令输出了一些不需要的文本:

Microsoft (R) Script host for Windows, version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

我知道这是版权声明,但我只在我的电脑上使用这个程序。这很烦人。 这是代码:

@if (@a==@b) @end /*

:: batch portion

@ECHO OFF

cscript /e:jscript "%~f0"

pause


:: JScript portion */

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    };
  };
};

var n = 0;
while (true) {
    n = n+1;
    i = n;
    WScript.Echo(i)
    if (i==1) {
        WScript.Echo("----");
        sleep(1000);
    } else {
        while (i!==1) {
            sleep(500);
            if (i%2==0) {
                i = i/2;
            } else {
                i = 3*i + 1;
            };
            WScript.Echo(i)
        };
    WScript.Echo("----");
    sleep(1000);
    };
};

我试过使用 WScript.Shell 和使用 exec() 来执行 cls,但根本行不通。

如果将 //nologo 开关添加到 cscript 命令,该消息将被抑制。

cscript /e:jscript "%~f0" //nologo