11
votes

CScript - Print Sortie sur la même ligne sur la console?

Si j'ai un cscript qui génère des lignes de sortie à l'écran, comment évitez-moi l'impression de chaque impression?

Exemple: P>

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


0 commentaires

3 Réponses :


2
votes

wscript.print () code> imprime une ligne et vous ne pouvez pas modifier cela. Si vous voulez avoir plus d'une chose sur cette ligne, construisez une chaîne et imprimez cela.

Dim s: s = ""

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

print s


2 commentaires

Oui, wscript.Print a raison - régressé à mes vieux jours de script VB ... Je suis sûr que vous savez que vous pouvez "echo" des caractères de commande à la console et c'est ainsi que vous avez écrit les anciennes applications de style "DOS". Cela peut-il toujours être fait pour manipuler le curseur?


@Guy: WScript.Print de VBScript () fonctionne comme VB6 'CODE> DEBUG.PRINT () En ce qui concerne les nouvelles lignes, donc ... Non, pas à ma connaissance.



14
votes

Utiliser wscript.stdout.write () au lieu de wscript.print () .


3 commentaires

oups - redevé à mes jours VB. Oui, wscript.print est la bonne commande!


Je voulais dire que vous pouvez utiliser wscript.stdout.write au lieu de wscript.print à imprimer sur la même ligne sans les nouveaux caractères de ligne.


Notez que cela échouera lorsqu'il sera exécuté dans WScript , vous pouvez vous assurer que Le script est en cours d'exécution dans la console .



-1
votes

J'utilise la fonction "Journal" suivante dans mon JavaScript pour prendre en charge l'environnement WScript ou CScript. Comme vous pouvez voir que cette fonction n'écrira à la sortie standard que si elle peut.

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();


1 commentaires

Cela ne répond pas à la question ( comment puis-je éviter la "ligne d'alimentation de la ligne" après chaque impression? )