2010-05-24 42 views
7

Si tengo un cscript que genera líneas en la pantalla, ¿cómo evito el "salto de línea" después de cada impresión?cscript - imprimir salida en la misma línea en la consola?

Ejemplo:

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

La salida esperada debe ser:

.......... 
No

:

. 
. 
. 
. 
. 
. 
. 
. 
. 
. 

En el pasado he utilizado para imprimir el "carácter hasta la flecha" Código ASCII. ¿Se puede hacer esto en cscript?

RESPUESTA

de impresión en la misma línea, sin el extra CR/LF

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

Respuesta

9

Use wscript.stdout.write() en lugar de imprimir.

+0

oops - se ha registrado en mis días de VB. Sí, WScript.Print es el comando correcto! – Guy

+1

Quise decir que podría usar wscript.stdout.write en lugar de wscript.print para imprimir en la misma línea sin los nuevos caracteres de línea. – naivnomore

+0

Sí - ¡Eso funcionará! – Guy

2

WScript.Print() imprime una línea, y no se puede cambiar eso. Si desea tener más de una cosa en esa línea, cree una cadena e imprímala.

Dim s: s = "" 

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

print s 

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

+0

Sí, es correcto wscript.print - retrocedido a mis viejos tiempos de scripts VB ... Estoy seguro de que sabe que puede "eco" caracteres de comandos de la consola y esta es la forma en que escribió el viejo Aplicaciones de estilo "DOS". ¿Se puede hacer esto para manipular el cursor? – Guy

+0

@Guy: el 'WScript.Print()' de VBScript funciona como 'Debug.Print()' de VB6 con respecto a las nuevas líneas, así que ... no, no lo sé. – Tomalak

-1

Utilizo la siguiente función de "registro" en mi JavaScript para admitir el entorno wscript o cscript. Como puede ver, esta función escribirá en la salida estándar solo si 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(); 
+0

Esto no responde a la pregunta ('¿cómo puedo evitar el" salto de línea "después de cada impresión?') – Helen

Cuestiones relacionadas