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
我有一个 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