Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   Esc-последовательности в BAT-файлах (ansi.sys) (http://forum.oszone.net/showthread.php?t=123020)

AndreyY89 15-11-2008 17:22 953483

Esc-последовательности в BAT-файлах (ansi.sys)
 
Всем привет!
Есть проблема с программированием BAT-файла. Нужно сделать красивое оформление - цвета, текст по центру экрана и пр. Делается это с помощью Esc-последовательностей (описаны например здесь: http://www.opennet.ru/docs/BSD/pascal/syscons/ansi.html). Чтобы они обрабатывались, нужна поддержка драйвера ANSI.SYS. В Win98 он вроде как использовался по умолчанию, но в WinXP изначально он не подключен. Тем не менее, этот файл есть в Windows\System32. Инструкция по подключению везде одна и та же, вот например: http://www.windowsnetworking.com/kba...siSupport.html. Но проблема в том, что ничего не получается. Сделал всё, как написано - вроде драйвер подключился (хотя как проверить?). Но при запуске BAT, где есть такие Esc-последовательности, никакой реакции: просто выводит на экран текст "Esc[...". В чём проблема - не понимаю. В методичке, которую дали в универе, написано примерно то же самое. Но не работает... Может кто-нибудь подскажет, в чём именно проблема, и как выйти из ситуации?

Drinko 15-11-2008 17:58 953502

AndreyY89,

http://search.microsoft.com/Results....E2&l=2&x=0&y=0

Petya V4sechkin 15-11-2008 18:12 953514

AndreyY89, вам нужен .bat или .cmd?
Потому что в .cmd цвет задается командой Color.

AndreyY89 15-11-2008 18:16 953517

Н-да... Ответ от MS не утешил: cmd не поддерживает этот драйвер :(
А может есть какие-нибудь альтернативы? Просто батники по умолчанию запускаются именно через cmd, а не через command.com...

Кстати, если уж через command.com - как в батнике писать Esc? На $e не реагирует, как они написали в примере - только при вызове prompt.

Petya V4sechkin, color задаёт цвет фона и цвет текста. Это хорошо, но этого мало. А ANSI.SYS поддерживает ещё кучу всего интересного.

AndreyY89 15-11-2008 19:02 953547

Попробую использовать Norton Batch Enhancer в качестве альтернативы. Вроде он работает независимо.

Denis-reut 24-01-2012 21:19 1843718

Доброго времени суток. Сколько не пробовал - не получается средствами командной строки (bat- или cmd-файлы) изменить цвет/размер шрифта или цвет фона; пытался сохранять результат в *.txt и *.rtf, при этом готовил исходник в форматированном виде, чтобы в исполняемом файле сохранились необходмые мне параметры.
Например, bat-файл диагностики сетевого оборудования - хотелось бы, чтобы в логе положительный (+OK+) и отрицательный (-ALARM!!!-) результаты отличались размером и цветом шрифта. У кого-то это получалось?

@ECHO OFF

date /T >D:\Diagnostic\%date%.rtf
time /T >>D:\Diagnostic\%date%.rtf
echo Server >>D:\Diagnostic\%date%.rtf
echo 192.168.1.1>>D:\Diagnostic\%date%.rtf
C:\windows\system32\ping 192.168.1.1 -n 2
if not errorlevel 1 echo +OK+ >>D:\Diagnostic\%date%.rtf
if errorlevel 1 echo -ALARM!!!- >>D:\Diagnostic\%date%.rtf
echo ******************* >>D:\Diagnostic\%date%.rtf

Что касается команды color, то, насколько я знаю, она меняет цвет в шрифте/фоне окна командной строки (то есть только при вызове cmd.exe)

Iska 25-01-2012 00:21 1843854

Начнём с конца…

Цитата:

Цитата Denis-reut
Что касается команды color, то, насколько я знаю, она меняет цвет в шрифте/фоне окна командной строки (то есть только при вызове cmd.exe) »

Она может применяться и непосредственно в пакетном файле. Минус её в том, что меняются атрибуты открытой консоли в целом.

Я рекомендую попробовать внешнюю утилиту «EchoX.exe» из комплекта Bill Stewart's Site - Shell Scripting Toolkit. Она заметно расширяет возможности встроенной команды «echo» (пример раз, пример два).

Либо перейти на PowerShell — там сие поддерживается изначально.

Цитата:

Цитата Denis-reut
У кого-то это получалось? »

Угу. Можно и ANSI.SYS задействовать. Единственное, что мне не нравится в этом подходе — inline директивы вносят лишнюю сумятицу в строки. Зато в комплекте.

P.S. Если хотите цвет именно в файле — делайте вывод в HTML.

Denis-reut 28-01-2012 20:10 1846416

Добрый вечер. Использование html-страниц - неплохая идея! Сейчас попробую...

Fsaber 16-03-2012 07:05 1880417

ansicon 1.50 спасет отца любителей ESC последовательностей :)


Время: 02:50.

Время: 02:50.
© OSzone.net 2001-