11

如果我有一个将行输出到屏幕的 cscript,如何避免每次打印后出现“换行”?

例子:

for a = 1 to 10
  WScript.Print "."
  REM (do something)
next

预期的输出应该是:

..........

不是:

.
.  
.
.
.
.
.
.
.
.

过去我曾经打印过“向上箭头字符”的 ASCII 码。这可以在cscript中完成吗?

回答

在同一行打印,没有额外的 CR/LF

for a=1 to 15
  wscript.stdout.write a
  wscript.stdout.write chr(13)
  wscript.sleep 200
next
4

3 回答 3

14

使用WScript.StdOut.Write()而不是WScript.Print().

于 2010-05-24T14:48:09.443 回答
2

WScript.Print()打印一行,你不能改变它。如果您想在那条线上有多个东西,请构建一个字符串并打印它。

Dim s: s = ""

for a = 1 to 10
  s = s & "."
  REM (do something)
next

print s

直截了当地说,cscript.exe它只是 Windows 脚本宿主的命令行界面,而 VBScript 就是语言。

于 2010-05-24T14:36:41.590 回答
-1

我在我的 JavaScript 中使用以下“日志”函数来支持 wscript 或 cscript 环境。正如你所看到的,这个函数只有在可以的情况下才会写入标准输出。

var ExampleApp = {
    // Log output to console if available.
    //      NOTE: Script file has to be executed using "cscript.exe" for this to work.
    log: function (text) {
        try {
            // Test if stdout is working.
            WScript.stdout.WriteLine(text);
            // stdout is working, reset this function to always output to stdout.
            this.log = function (text) { WScript.stdout.WriteLine(text); };
        } catch (er) {
            // stdout is not working, reset this function to do nothing.
            this.log = function () { };
        }
    },
    Main: function () {
        this.log("Hello world.");
        this.log("Life is good.");
    }
};

ExampleApp.Main();
于 2012-12-03T17:44:50.333 回答