2010-05-24 10 views
7

Se si dispone di un cscript che emette righe sullo schermo, come evitare il "line feed" dopo ogni stampa?cscript - stampa l'output sulla stessa riga sulla console?

Esempio:

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

Il risultato atteso dovrebbe essere:

.......... 

Non:

. 
. 
. 
. 
. 
. 
. 
. 
. 
. 

In passato ho usato per stampare il "il carattere freccia" Codice ASCII. Questo può essere fatto in cscript?

RISPOSTA

stampa sulla stessa linea, senza il supplemento di CR/LF

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

risposta

9

Utilizzare wscript.stdout.write() invece di stampare.

+0

oops: ripulito per i miei giorni VB. Sì, WScript.Print è il comando corretto! – Guy

+1

Intendevo dire che potresti usare wscript.stdout.write invece di wscript.print per stampare sulla stessa riga senza i nuovi caratteri di riga. – naivnomore

+0

Sì, funzionerà !!! – Guy

2

WScript.Print() stampe una linea, e non si può cambiare la situazione. Se vuoi avere più di una cosa su quella linea, crea una stringa e stampala.

Dim s: s = "" 

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

print s 

solo per mettere quel dritto, cscript.exe è solo l'interfaccia a riga di comando per Windows Script Host, e VBScript è la lingua.

+0

Sì, wscript.print è giusto - regredita ai miei vecchi giorni di script VB ... Sono sicuro che sai che puoi "echo" caratteri di comando alla console e questo è come hai scritto il vecchio Applicazioni in stile "DOS". Questo può ancora essere fatto per manipolare il cursore? – Guy

+0

@Guy: 'WScript.Print()' di VBScript funziona come 'Debug.Print()' di VB6 rispetto alle newline, quindi ... no, non a mia conoscenza. – Tomalak

-1

Io uso la seguente funzione "registro" nel mio JavaScript per supportare l'ambiente wscript o cscript. Come puoi vedere questa funzione scriverà sullo standard output solo se possibile.

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

Questo non risponde alla domanda ('come evitare il" line feed "dopo ogni stampa?') – Helen