Domanda

Se ho un cscript che emette linee allo schermo, come devo fare per evitare il "avanzamento riga" dopo ogni stampa?

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 codice ASCII "freccia carattere". questo può essere fatto in cscript?

RISPOSTA

Stampa sulla stessa linea, senza la CR extra / LF

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

Soluzione

Usa WScript.StdOut.Write() invece di WScript.Print().

Altri suggerimenti

WScript.Print() stampa una riga, e non si può cambiare la situazione. Se si desidera avere più di una cosa su quella linea, costruire una stringa e stampare questo.

Dim s: s = ""

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

print s

Giusto per mettere quella dritta, cscript.exe è solo l'interfaccia della riga di comando per Windows Script Host, e VBScript è la lingua.

Io uso la seguente funzione "log" nel mio Javascript per supportare sia wscript o cscript ambiente. Come si può vedere questa funzione scrivere sullo standard output solo se si può.

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top