![]() |
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[...". В чём проблема - не понимаю. В методичке, которую дали в универе, написано примерно то же самое. Но не работает... Может кто-нибудь подскажет, в чём именно проблема, и как выйти из ситуации? |
|
AndreyY89, вам нужен .bat или .cmd?
Потому что в .cmd цвет задается командой Color. |
Н-да... Ответ от MS не утешил: cmd не поддерживает этот драйвер :(
А может есть какие-нибудь альтернативы? Просто батники по умолчанию запускаются именно через cmd, а не через command.com... Кстати, если уж через command.com - как в батнике писать Esc? На $e не реагирует, как они написали в примере - только при вызове prompt. Petya V4sechkin, color задаёт цвет фона и цвет текста. Это хорошо, но этого мало. А ANSI.SYS поддерживает ещё кучу всего интересного. |
Попробую использовать Norton Batch Enhancer в качестве альтернативы. Вроде он работает независимо.
|
Доброго времени суток. Сколько не пробовал - не получается средствами командной строки (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) |
Начнём с конца…
Цитата:
Я рекомендую попробовать внешнюю утилиту «EchoX.exe» из комплекта Bill Stewart's Site - Shell Scripting Toolkit. Она заметно расширяет возможности встроенной команды «echo» (пример раз, пример два). Либо перейти на PowerShell — там сие поддерживается изначально. Цитата:
P.S. Если хотите цвет именно в файле — делайте вывод в HTML. |
Добрый вечер. Использование html-страниц - неплохая идея! Сейчас попробую...
|
ansicon 1.50 спасет отца любителей ESC последовательностей :)
|
Время: 02:50. |
Время: 02:50.
© OSzone.net 2001-