Question

Si j'ai un cscript qui affiche les lignes à l'écran, comment puis-je éviter le « saut de ligne » après chaque impression?

Exemple:

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

Le résultat attendu devrait être:

..........

Non:

.
.  
.
.
.
.
.
.
.
.

Dans le passé, je l'ai utilisé pour imprimer le code ASCII « flèche haut caractère ». Cela peut-il être fait cscript?

Réponse

Imprimer sur la même ligne, sans le supplément CR / LF

for a=1 to 15
  wscript.stdout.write a
  wscript.stdout.write chr(13)
  wscript.sleep 200
next
Était-ce utile?

La solution

Utiliser WScript.StdOut.Write() au lieu de WScript.Print().

Autres conseils

WScript.Print() imprime une ligne, et vous ne pouvez pas changer cela. Si vous voulez avoir plus d'une chose sur cette ligne, construire une chaîne et imprimer cela.

Dim s: s = ""

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

print s

Juste pour mettre ce droit, cscript.exe est juste l'interface de ligne de commande pour Windows Script Host et VBScript est la langue.

J'utilise la fonction suivante « journal » dans mon JavaScript pour prendre en charge wscript ou de l'environnement cscript. Comme vous pouvez le voir cette fonction écrire sur 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();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top