Вопрос

Если у меня есть CScript, который выводит строки на экран, как избежать «Line Feed» после каждого печати?

Пример:

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

Ожидаемый выход должен быть:

..........

Нет:

.
.  
.
.
.
.
.
.
.
.

В прошлом я использовал для печати кода ASCII символа «UP Arrow». Это может быть сделано в CScript?

ОТВЕЧАТЬ

Печать на одной линии, без дополнительного CR / LF

for a=1 to 15
  wscript.stdout.write a
  wscript.stdout.write chr(13)
  wscript.sleep 200
next
Это было полезно?

Решение

Использовать WScript.StdOut.Write() вместо WScript.Print().

Другие советы

WScript.Print() Распечат линию, и вы не можете изменить это. Если вы хотите иметь более одного на этой строке, постройте строку и распечатайте ее.

Dim s: s = ""

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

print s

Просто чтобы положить это прямо, cscript.exe Это просто интерфейс командной строки для хоста сценариев Windows, а VBScript - это язык.

Я использую следующую функцию «Журнал» в моем JavaScript для поддержки среды WScript или CScript. Как вы можете видеть, эта функция напишет на стандартный вывод, только если это может.

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();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top