изключете актуализирането на екрана в пакетен файл на dos

Пиша програма на C++, която стартира команди от операционната система DOS с помощта на командата system(). До тук добре мисля. Но как мога да изключа актуализирането на екрана в изскачащия прозорец на конзолата, така че да не виждам хилядите съобщения, които се появяват.

Или, алтернативно, как мога да изхвърля тези съобщения на някое друго място... т.е. има ли по-елегантен начин да се справя с това вместо просто да изключа екрана? Благодаря.


person user256261    schedule 22.01.2010    source източник


Отговори (4)


  1. За да предотвратите повтарянето на самите твърдения, поставете това в горната част на скрипта:

    @echo изключено

  2. За да предотвратите изход от команди, използвайте оператори за пренасочване. За да отхвърлите стандартния изход и стандартните потоци за грешки:

    nameofcommand.exe параметри > nul 2>&1

Имайте предвид, че винаги е добра идея да включите обработка на грешки (проверка на нивата на грешки и т.н.) във вашите скриптове, особено ако отхвърлите целия изход, както е показано по-горе.

person Jason Kresowaty    schedule 22.01.2010
comment
Той пише C++, а не пакетен файл. - person SLaks; 22.01.2010
comment
‹Той пише C++› Опа, пропусна частта за използването на пакетен файл за извикване на програмата... - person Jason Kresowaty; 22.01.2010

В пакетния файл можете да пренасочите изхода към файл. напр. echo this goes to a file > log.txt ще запише съдържанието на оператора ехо във файла.

Вижте тази статия за пренасочващите команди.

person i_am_jorf    schedule 22.01.2010

Трябва да използвате функцията _popen, която ще запише изхода в поток вместо конзолата.

person SLaks    schedule 22.01.2010

Знам, че е бързо и мръсно, но... алтернативно, задайте цвета на предния план на прозореца на същия цвят като този на фона, за да скриете мигащите текстове, вижте тук за пример как да направите това, в 7-ма публикация на тази страница, която показва кода за това. Цветът, който искате, е 0x0, черно върху черно...по този начин изглежда празно и никой няма да го види..

Мръсен, знам...наистина отговорът на SLaks по-горе би бил по-елегантен...

Надявам се това да помогне, най-добри пожелания, Том.

person t0mm13b    schedule 22.01.2010