Pregunta

Si tengo un cscript que da salida a las líneas de la pantalla, ¿cómo puedo evitar el "salto de línea" después de cada impresión?

Ejemplo:

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

El resultado esperado debe ser:

..........

No:

.
.  
.
.
.
.
.
.
.
.

En el pasado he utilizado para imprimir la "flecha arriba personaje" código ASCII. ¿Es posible hacerlo en cscript?

RESPUESTA

Imprimir en la misma línea, sin el CR extra / LF

for a=1 to 15
  wscript.stdout.write a
  wscript.stdout.write chr(13)
  wscript.sleep 200
next
¿Fue útil?

Solución

Uso WScript.StdOut.Write() en lugar de WScript.Print().

Otros consejos

WScript.Print() imprime una línea, y no se puede cambiar eso. Si usted desea tener más de una cosa en esa línea, construir una cadena y que imprimir.

Dim s: s = ""

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

print s

Sólo para poner recta que, cscript.exe es sólo la interfaz de línea de comandos para Windows Script Host, y VBScript es el lenguaje.

Yo uso la siguiente función de "registro" en mi Javascript para apoyar cualquiera wscript o ambiente cscript. Como se puede ver esta función escribirá en la salida estándar sólo si se puede.

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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top