Сайт AZJIO
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Скомпилированные скрипты [55]
Коллекции [4]
Поиск
Главная » Файлы » AutoIt3 » Скомпилированные скрипты

Converter CMD to BBcode
20.04.2011, 03:25

Converter CMD to BBcode утилита для выкладывания файлов BAT, CMD на форум с использованием цветовой темы для ключевых слов. Это помогает лучше воспринимать код.

скриншот на Windows XP




Файл Style.css содержит стили для HTML. Следует учитывать, что HTML-файл ссылается на файл стиля Style.css, и нужно либо на сервер добавлять его указывая относительный путь, либо добавить стили в HTML-файл, либо перенести стили в общий файл стилей сервера и указать его в HTML-файле. Опция проверки позволяет удалить теги, сравнивая с оригиналом. Если произошла ошибка, то выводится сообщение. Данная опция позволяет исключить ошибки вызванные регулярными выражениями при каких либо комбинациях кода, но не выявленных на этапе тестирования. Код может не всегда правильно подсвечен, но с проверкой не нарушается его целостность.
Список ключевых слов, операторов и имена системных утилит находятся ini-файле. В список операторов можно добавить символы "/" и "-".
Первоначально тестировал сравнивая логику выделения с Notepad++.

Спасибо gora за тест и советы

Обновления
Поправлена ошибка тегов шрифта применяемого к нескольким строкам

0.7
Добавлено объединение одинаковых последовательных тегов в один общий тег
Добавлено обнаружение комментариев после меток
Добавлено объединение последовательных переменных внутрь одного тега
Добавлено таб или ничего после Call и Goto
Исправлено сохранение координат для Win7
Добавлено разрешение таб после rem
Добавлена переменная %* и разрешён $ в переменных, обнаружение последовательных переменных

0.6
Добавлено "Поверх всех окон"
Сохранение всех параметров при завершении программы, а также координат окна
Улучшил избирательность детектирования системных exe-файлов (не подсвечиваются reg в расширении файлов, и ftp в ссылках)
Улучшил избирательность детектирования переменных с тильдой "~" и модификаторами fdpnxsatz
Добавлена обработка переменных содержащих операторы
Добавлены вложенные переменные одна в другую и переменная вида %%var:~%%
Автоудаление вложенности тегов, позволяет добавить операторы "/" и "-" в ini и не получить предупреждение ошибки.

0.5
Добавлен английский язык (если соответствующая локализация)
Добавлена опция "Обратная проверка"
Добавлена опция "Подсвечивание после Echo"
Исправил баг с REM
Добавлены eol, skip, delims, tokens, usebackq как ключевые слова
Добавлено сохранение последнего открытого каталога

0.4
Добавлена опция конвертирования 866 > 1251
Ключевые слова, операторы, имена системных файлов вы

Категория: Скомпилированные скрипты | Добавил: AZJIO
Просмотров: 3429 | Загрузок: 0 | Комментарии: 11 | Рейтинг: 0.0/0
Всего комментариев: 10
10 AZJIO  
0
Исправил по всем пунктам кроме: символы / и - используются в параметрах при том намного чаще чем математическое. В Notepad++ они не подсвечиваются. Идентифицировать когда применяется этот символ сложно, числа могут быть реальные или в переменных, аналогично любое число может оказаться в именах файлов. Оставляю пока как есть, максимум могу в строке "set /a" отдетектить по всей вероятности там будут математические использоваться. Звёздочка * аналогично, может использоваться в конце имени файла, которое будет числом. Могу отменить только для случаев *.* если нужно.

Кроме этого много других изменений.
Файл 180 кб (4200 строк, 184000 символов) отрабатывает 1.7 сек.
с конвертированием 866 > 1251 за 2.9 сек.
Вроде терпимо, если учесть, что обычно для небольших батников намного быстрее 0.03-0.07 сек.
Быстрее не получится, большую часть времени затрачивается на замену ключевых слов и exe, без них 0.2 сек, но они основное.


9 gora  
0
24 Не подсвечиваются переменные после Title

8 gora  
0
17 После меток лишний перевод строки
18 Метки после GoTo не подсвечиваются
19 Не подсвечиваются ключевые слова GTR, LEQ и т.д.
20 Комментарии подсвечиваются выборочно, логика не понятна.
21 Переменные %1 не подсвечиваются, хотя %~1 подсвечивается
22 Не подсвечиваются переменные при "обрезании". Например, !tn:~-2!, %Time:~1,1% и т.д.
23 И математических символов подсвечиваются только =, * и +. Хотя есть еще и /, - и ряд других, более редких комбинаций. Причем в этой строке:
Del /Q Virtu*.* 1>Nul 2>&1
Подсветка * здесь не нужна ибо это не умножение.
PS результат работы последней утилиты выложил в той же ветке.
Зарегистрироваться на сайте не смог, что не так не понял...

7 AZJIO  
0
Ещё обновил, исправил по последним пунктам.
1. Метки после Call
2. %%~nxi
3. После Echo вернул как было, всё также детектируется.
4. Исправил добавление пустой строки после комментариев

6 gora  
0
Исходник прикрепил к первому посту темы
15 Посмотрите что стало с переменной %%~nxi в этой строке:
For %%i In ("download\*.exe") Do Set nameExe=%%~nxi
16
>После Echo пока отменил переменные и любые ключевые слова
А вроде работают, правда не везде.

PS
Я не часто заглядываю на Ваш сайт, а подписка у Вас есть или нет, не знаю. Но если нужно оперативно что-то мне сообщить, то на Oszone в моем профиле есть моя аська.


5 AZJIO  
0
Потихоньку правлю, проверяй опять.
По возможности выкладывай код, который неправильно отображается, чтоб я мог искать проблему.
1. Исправил переменные с тильдой и с двойным %.
2. После Echo пока отменил переменные и любые ключевые слова, так как она используется для вывода текста. Подумаю на счёт нюансов, переменные можно добавить и знак > отправки в файл.

4 gora  
0
Я опять со своими замечаниями. :)
Выложил результаты работы утилиты здесь: http://forum.oszone.net/showthread.php?p=1675722#post1675722
8 После комментариев и меток появляется дополнительная пустая строка. Ненужная услуга.
9 Переменные в знаках восклицания не подсвечиваются, а чем они хуже? ;)
10 Переменные цикла (%%i) подсвечиваются, а их производные (например, %%~nxi) только частично.
11 То что утилита не различает ver.rc и подсвечивает ver как ключевое слово, наверное исправить будет сложно, но напишу об этом.
12 В примере есть строка: %%PROGRAMFILES%%\Oracle\VirtualBox , так переменная в ней подсвечивается не правильно (замечание 2)
13 Метки подсвечиваются, а вот в тексте они не подсвечиваются (например, Call :_sizedir)
14 В этом куске после Echo подсветка отсутствует:
:_Abort

COLOR 0C
Echo %~1 Создание аддона прервано ^^!
Видимо код Beep (07H) сбил утилиту с толку. :(
А вообще утилита мне понравилась! Спасибо.


3 AZJIO  
0
Да, знаю. Долго голову ломал над тем как составить регулярку которая бы находила слово, но исключая случаи когда перед словом %. Если добавляю, то приходится убирать символы границ слова \b (посмотри строку 210). А без этого символа (\b) требуется указать все симолы, которые разделяют слово, а это ещё и начало строки. То есть либо тут проблема либо там. Надо на форуме задать вопрос.
Добавил Do To In, )(^&
Ещё исправить GOTO CD

2 gora  
0
Попробовал новую версию:
5 Переменные, названия которых совпадают с ключевыми словами, подсвечиваются как ключевые слова, а не как переменные. Пример: %time%, %CD%, %ver% и т.д.
6 Не подсвечиваются в циклах To и In
7 Переменные в циклах иногда подсвечиваются, но чаще нет. Закономерности не понял. :(

1 gora  
0
Спасибо за интересную утилиту. Однако есть замечания:
1 Очень часто батники пишутся в кодировке DOS и после обработки Вашей утилитой выкладывать полученный результат на форум не получится, тексты нечитаемые.
2 Переменные обрамленные в двойные знаки процента (такое иногда требуется в коде скрипта) подсвечиваются не правильно. Подсвечивается только двойные проценты в начале переменной и первая буква переменной. Видимо путает с переменной цикла.
3 Else не подсвечивается.
4 Скобки, спец знаки ^, & тоже бы хотелось видеть выделенными, ибо они не рядовые символы в батниках.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Вход
Друзья сайта
  • Справки AZJIO
  • USBTOR
  • PureBasic (Ru)
  • PureBasic (En)
  • AutoIT3 - Ru.Board
  • autoit-script.ru
  • autoitscript.com
  • WinPE - Ru.Board
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    ЮMoney

    Мой кошелёк

    ЮMoney: 4100117604217624


    AZJIO © 2024