2010-05-24 7 views
7

Wenn ich ein cscript habe, das Zeilen auf den Bildschirm ausgibt, wie vermeide ich den "Zeilenvorschub" nach jedem Druck?cscript - Ausgabe in derselben Zeile auf der Konsole ausgeben?

Beispiel:

.......... 

Nicht:

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

Die erwartete Ausgabe sollte

. 
. 
. 
. 
. 
. 
. 
. 
. 
. 

In der Vergangenheit habe ich verwendet habe, die "Pfeil nach oben Zeichen" drucken ASCII-Code. Kann das in Cscript gemacht werden?

ANTWORT

Print auf der gleichen Linie, ohne die zusätzlichen CR/LF

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

Antwort

9

Verwenden Sie wscript.stdout.write() anstelle von Drucken.

+0

oops - zu meinen VB Tagen zurückgekehrt. Ja, WScript.Print ist der richtige Befehl! – Guy

+1

Ich meinte, Sie könnten wscript.stdout.write anstelle von wscript.print verwenden, um in derselben Zeile ohne die neuen Zeilenzeichen zu drucken. – naivnomore

+0

Ja - Das wird funktionieren !!! – Guy

2

WScript.Print() druckt eine Linie, und Sie können das nicht ändern. Wenn Sie mehr als eine Sache in dieser Zeile haben möchten, erstellen Sie eine Zeichenfolge und drucken Sie diese aus.

Dim s: s = "" 

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

print s 

einfach, dass gerade zu setzen, cscript.exe ist nur die Befehlszeilenschnittstelle für das Windows Script Host und VBScript ist die Sprache.

+0

Ja, wscript.print stimmt - regrediert zu meinem alten VB-Script-Tag ... Ich bin sicher, Sie wissen, Sie können „echo“ Befehl Zeichen an die Konsole und das ist, wie Sie die alte schrieb "DOS" -Stil-Anwendungen. Kann das noch gemacht werden, um den Cursor zu manipulieren? – Guy

+0

@Guy: VBScript's 'WScript.Print()' funktioniert wie VB6 'Debug.Print()' in Bezug auf Zeilenumbrüche, also ... nein, nicht meines Wissens. – Tomalak

-1

Ich benutze die folgende "log" -Funktion in meinem JavaScript, um entweder Wscript oder Cscript-Umgebung zu unterstützen. Wie Sie sehen können, schreibt diese Funktion nur dann auf die Standardausgabe, wenn dies möglich ist.

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

Dies beantwortet die Frage nicht ('Wie vermeide ich den" Zeilenvorschub "nach jedem Ausdruck?') – Helen