Данную программу (Bat To Exe Converter) я перевел не спроста - была у меня давно несколько лет тому назад одна задумка. Конечно в наше время когда по рунету гордо шагает Inno Setup возможно кому то покажется анахронизмом писать BAT-файлы но это может пригодиться для решения небольших специфических задач. Итак, что же могут делать сценарии пакетных файлов Windows?
Список команд, которые можно использовать в bat файлах, можно просмотреть, введя в командной строке (Пуск - Выполнить - cmd для Windows семейтва NT или Пуск - Выполнить - command для линейки 9х) команду.
Вот список:
Для получения сведений об определенной команде наберите HELP <имя команды>
ASSOC Вывод либо изменение сопоставлений по расширениям имен файлов.
AT Выполнение команд и запуск программ по расписанию.
ATTRIB Отображение и изменение атрибутов файлов.
BREAK Включение/выключение режима обработки комбинации клавиш CTRL+C.
CACLS Отображение/редактирование списков управления доступом (ACL) к файлам.
CALL Вызов одного пакетного файла из другого.
CD Вывод имени либо смена текущей папки.
CHCP Вывод либо установка активной кодовой страницы.
CHDIR Вывод имени либо смена текущей папки.
CHKDSK Проверка диска и вывод статистики.
CHKNTFS Отображение или изменение выполнения проверки диска во время загрузки.
CLS Очистка экрана.
CMD Запуск еще одного интерпретатора командных строк Windows.
COLOR Установка цвета текста и фона, используемых по умолчанию.
COMP Сравнение содержимого двух файлов или двух наборов файлов.
COMPACT Отображение/изменение сжатия файлов в разделах NTFS.
CONVERT Преобразование дисковых томов FAT в NTFS. Нельзя выполнить
преобразование текущего активного диска.
COPY Копирование одного или нескольких файлов в другое место.
DATE Вывод либо установка текущей даты.
DEL Удаление одного или нескольких файлов.
DIR Вывод списка файлов и подпапок из указанной папки.
DISKCOMP Сравнение содержимого двух гибких дисков.
DISKCOPY Копирование содержимого одного гибкого диска на другой.
DOSKEY Редактирование и повторный вызов командных строк; создание макросов.
ECHO Вывод сообщений и переключение режима отображения команд на экране.
ENDLOCAL Конец локальных изменений среды для пакетного файла.
ERASE Удаление одного или нескольких файлов.
EXIT Завершение работы программы CMD.EXE (интерпретатора командных строк).
FC Сравнение двух файлов или двух наборов файлов и вывод различий между
ними.
FIND Поиск текстовой строки в одном или нескольких файлах.
FINDSTR Поиск строк в файлах.
FOR Запуск указанной команды для каждого из файлов в наборе.
FORMAT Форматирование диска для работы с Windows.
FTYPE Вывод либо изменение типов файлов, используемых при сопоставлении по
расширениям имен файлов.
GOTO Передача управления в отмеченную строку пакетного файла.
GRAFTABL Позволяет Windows отображать расширенный набор символов в графическом
режиме.
HELP Выводит справочную информацию о командах Windows.
IF Оператор условного выполнения команд в пакетном файле.
LABEL Создание, изменение и удаление меток тома для дисков.
MD Создание папки.
MKDIR Создание папки.
MODE Конфигурирование системных устройств.
MORE Последовательный вывод данных по частям размером в один экран.
MOVE Перемещение одного или нескольких файлов из одной папки в другую.
PATH Вывод либо установка пути поиска исполняемых файлов.
PAUSE Приостановка выполнения пакетного файла и вывод сообщения.
POPD Восстановление предыдущего значения текущей активной папки,
сохраненного с помощью команды PUSHD.
PRINT Вывод на печать содержимого текстовых файлов.
PROMPT Изменение приглашения в командной строке Windows.
PUSHD Сохранение значения текущей активной папки и переход к другой папке.
RD Удаление папки.
RECOVER Восстановление читаемой информации с плохого или поврежденного диска.
REM Помещение комментариев в пакетные файлы и файл CONFIG.SYS.
REN Переименование файлов и папок.
RENAME Переименование файлов и папок.
REPLACE Замещение файлов.
RMDIR Удаление папки.
SET Вывод, установка и удаление переменных среды Windows.
SETLOCAL Начало локальных изменений среды для пакетного файла.
SHIFT Изменение содержимого (сдвиг) подставляемых параметров для пакетного
файла.
SORT Сортировка ввода.
START Запуск программы или команды в отдельном окне.
SUBST Сопоставляет заданному пути имя диска.
TIME Вывод и установка системного времени.
TITLE Назначение заголовка окна для текущего сеанса интерпретатора
командных строк CMD.EXE.
TREE Графическое отображение структуры папок заданного диска или заданной
папки.
TYPE Вывод на экран содержимого текстовых файлов.
VER Вывод сведений о версии Windows.
VERIFY Установка режима проверки правильности записи файлов на диск.
VOL Вывод метки и серийного номера тома для диска.
XCOPY Копирование файлов и дерева папок.
Можно ли написать на bat-языке серьезную программу? Пожалуй, нет. Серьезная программа должна все-таки выглядеть серьезно. А все написанное на командном языке Windows таковым назвать можно лишь с очень большой натяжкой. Однако, а всегда ли это нам нужно - ведь порой нам не хватает самой малости...
Например:
Импортировать из пакетного файла значения переменных реестра можно сделать при помощи команды
regedit.exe -s C:environment.reg
Эта команда импортирует в реестр данные из файла environment.reg без запросов на подтверждение за счет использования ключа -s. Всего и делов то - одна строчка, не так уж и много.
В свое время в PatchWise мне очень нравилась одна дополнительная функция - внешняя операция. Насколько вы помните применялась она для рекламных целей - после русификации запускался браузер пользователя с параметрами рекламируемого сайта. Одно мне в этом не нравилось - приходилось указывать путь:
C:Program FilesInternet ExplorerIEXPLORE.exe
а не к браузеру используемому пользователем по умолчанию. А кто его знает - чем он пользуется?
может Mozilla
C:Program FilesMozilla Firefoxfirefox.exe
а может вообще юзает Opera или Chrome
Для того чтобы узнать это нужно посмотреть ключи в реестре:
HKEY_CLASSES_ROOThttpshellopencommand
HKEY_LOCAL_MACHINESOFTWAREClasseshttpshellopencommand
и уже только после этого ввести полученные данные в форму и запускать нужный нам обозреватель. Почему именно его, а не ишака который встроен в Windows изначально и имеется у всех? Да все просто - для этого можно зайти например в статистику нашего сайта и посмотреть: результаты для IE плачевны, пользуются им единицы, а PatchWise такой возможности не давал...
1. Версии IE не у всех свежие, обновлений нет. А следовательно выходить в сеть на нем просто опасно.
2. Даже выскочив с голой жопой на рекламируемый сайт, еще не факт, что пользователь помчится региться даже если он ему понравился: нужно ссылку копировать, другой браузер запускать или копаться в избранном чтоб найти нужный ему ярлык и т.д.
Поэтому в свое время я и подумал - не написать ли собственный исполняемый файл, который можно было бы закинуть пользователю во время русификации и дать команду запускать его. В нем можно было бы прописать все необходимое сразу: и реестр на 1251 перекинуть и безопасный браузер запустить (согласитесь та же Mozilla с Noscript гораздно безопаснее) если пользователь пользуется ей по умолчанию. Так что с моей точки зрения - возможно BAT-файлы даже пригодятся кому нибудь для инсталлятора при русификации, а при помощи конвертера Bat To Exe их при желании можно легко конвертировать в исполняемые файлы. Интересно было бы узнать что думают по этому поводу другие...