2010-05-24 122 views
7

如果我有一个cscript输出行到屏幕上,每次打印后如何避免“换行”?cscript - 在控制台的同一行上打印输出?

例子:

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

预期输出应该是:

.......... 

不:

. 
. 
. 
. 
. 
. 
. 
. 
. 
. 

在过去,我已经用打印的 “向上箭头人物” ASCII码。这可以在cscript中完成吗?

ANSWER

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

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

回答

9

使用wscript.stdout.write()而不是打印。

+0

oops - 注册我的VB日子。是的,WScript.Print是正确的命令! – Guy 2010-05-24 14:57:05

+1

我的意思是你可以使用wscript.stdout.write而不是wscript.print在同一行上打印而不需要换行符。 – naivnomore 2010-05-25 17:17:50

+0

是的 - 这将工作! – Guy 2010-06-10 22:03:38

2

WScript.Print()打印一条线,你不能改变的。如果你想在该行有多个事物,建立一个字符串并打印。

Dim s: s = "" 

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

print s 

只是把那个直,cscript.exe只是在命令行的Windows脚本宿主接口,和VBScript是语言。

+0

是,wscript.print是正确的 - 回归到我的旧的VB脚本天...... 我敢肯定,你知道你可以在“回声”命令字符到控制台,这是你如何写的老“DOS”风格的应用程序。这仍然可以完成操纵光标? – Guy 2010-05-24 15:01:15

+0

@Guy:VBScript的'WScript.Print()'就像VB6的'Debug.Print()',就换行而言,所以......不,据我所知。 – Tomalak 2010-05-24 15:56:46

-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(); 
+0

这并没有回答这个问题('每次打印后如何避免“换行”?) – Helen 2012-12-06 15:10:41