cscript - output di stampa on stessa linea su console?
-
04-10-2019 - |
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
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();