Как создать bat-файл в windows 10 и 7: руководство для «чайников»
Содержание:
- Как создать файл с расширением BAT в Windows 10/8/7
- Батник для автоматического выключения компьютера
- Dr.Batcher – программа для создания bat-файлов и их редактирования
- Как из bat файла обойти проверку даты
- Параметры
- Послесловие
- Специфики работы
- Как запустить командный файл в Windows 10
- Основные операторы bat-файла:
- Оператор IF с логическим ИЛИ (OR) в bat файле
- Что такое bat и зачем это нужно?
- Проверяем результат
- Создание пакетного файла с помощью утилиты «Dr.Batcher»
- Длинные имена в bat-файлах
- Как перенаправить результат выполнения команд в файл
- Как создать bat файл для запуска программы?
- А можно создать в bat-файле функцию?
- Использование BAT в EXE Converter
- Меняем формат файла и пробуем его запустить
Как создать файл с расширением BAT в Windows 10/8/7
Поскольку батник представляет собой обычный текстовый файл с необычным контентом, для его создания сгодится практически любой текстовый редактор. Разумеется, потребуется также знание синтаксиса языка командной строки. Использовать Word – не самый оптимальный способ, гораздо проще задействовать «Блокнот», но ещё лучше воспользоваться Notepad++, поскольку этот редактор обладает полезной «фишкой» – умеет подсвечивать синтаксис, облегчая задачу пользователям. Правда, в состав операционной система он не входит, его придётся скачивать.
В обоих случаях создание батника происходит по одинаковому сценарию: в меню «Файл» выбираем «Создать», заполняем файл содержимым, по окончании редактирования кликаем «Сохранить как», даём имя пакетному файлу, а в поле «Тип файла» указываем «Batch file».
В классическом «Блокноте» расширение необходимо написать руками, выбрав в поле «Тип файла» опцию «Все файлы».
При написании пакетных скриптов необходимо учитывать следующие нюансы:
- перенос строк в таких файлах недопустим, он будет интерпретироваться неправильно;
- правильной кодировкой будет UTF-8;
- при использовании в командах кириллических символов, кодировку следует изменить с помощью специальной команды chcp 1251;
- расширение BAT идентично CMD. Файлы, оканчивающиеся таким расширением, будут обработаны командным интерпретатором точно так же.
Есть и другие интересные моменты.
Использование длинных имён в BAT-файлах
Многие пользователи при практическом рассмотрении вопроса, как создать батник, в том числе с расширением CMD, сталкиваются с проблемой длинных имён, которые доступны в ОС Windows. Интерпретатор командной строки в этом отношении остался закоренелым ретроградом – он понимает имена файлов и каталогов в формате DOS, то есть длиной не более 8 символов. Как же решается подобная дилемма?
Один из наиболее известных способов – сокращение имени до 6 символов (исключая пробелы) и присвоение остатку окончания, состоящего из символа «тильда» (~) и цифры 1. Например, стандартное имя каталога Program Files будет выглядеть как Progra~1, папка Sound Blaster получит имя SoundB~1.
Казалось бы, вполне изящное решение. Но не во всех случаях. Скажем, у вас имеется несколько папок, начинающихся с одного имени. Типичный пример – установка в том же Program Files нескольких программных продуктов от компании Mozilla – в этом случае сокращённым именем будет Mozill, и если всем присвоить остаток ~1, то это будет неправильно. Выход – именовать файлы, присваивая номер в порядке возрастания. Получим последовательность для продуктов Firefox, Thunderbird и Sunbird в виде строк Mozill~1 для браузера, Mozill~2 для Thunderbird и Mozill~3 для органайзера.
Проблема в том, что если один из продуктов удалить, например, Firefox, оставшиеся две записи окажутся неработоспособными. Удалив Thunderbird, вы сделаете недоступным Sunbird. Наконец, такой способ позволяет дать имена лишь девяти файлам/папкам с одинаковым начальным именем. Так что подобный способ удовлетворительным назвать никак нельзя.
Второе решение – заключать длинные имена и пути в кавычки.
Кавычки в пакетных файлах
Если вы думаете, что знаете всё про то, как сделать BAT-файл, то, скорее всего ошибаетесь. Допустим, вам нужно указать один из параметров команды в кавычках. Сами кавычки синтаксисом не запрещены, но всегда нужно учитывать правила написания конкретной команды. Пускай нам нужно запустить экзешник scw.exe. Соответствующая команда, по идее, должна иметь вид
Но это будет воспринято интерпретатором неправильно, поскольку в синтаксисе команды START на первом месте – необязательный параметр , и только затем следует путь. Поэтому, чтобы командный интерпретатор не запутался, первый параметр обязательно указываем, даже если он не нужен – просто оставляем его пустым.
Тогда наша команда преобразится:
Правильным также будет заключение в скобки всех наименований папок/файлов с пробелами внутри. Но встречаются ситуации, когда оба варианта не сработают. В таких случаях можно посоветовать посредством команды cd перейти в нужный каталог и работать уже в целевом. В нашем случае батник будет иметь вид:
Этот метод более трудоёмкий, но он гарантированно рабочий.
Как видим, создание, написание BAT-файлов даже для таких простых задач, как запуск программ в Windows, является по большому счёту искусством.
Батник для автоматического выключения компьютера
В статье Пакетные файлы (bat, батники) Windows мы подробно рассматривали основные правила создания бат-файлов и их синтаксис. Чтобы не повторяться лишний раз, в данной публикации будем описывать только те команды и параметры, которые будем применять для создания файлов, позволяющих запланировать автоматическое выключение компьютера.
Возьмём команду, приведённую в главе выше, и сделаем из неё простенький бат-файл для выключения компьютера через 10 минут. Его содержимое будет следующим:
echo off chcp 1251 echo Компьютер будет выключен через 10 минут shutdown -s -f -t 600 pause
где:
- echo off — скрывает вывод системных сообщений при выполнении процедуры;
- chcp 1251 — задаёт кодировку для корректного отображения кириллицы;
- echo — выводит сообщение в консоли о выключении;
- shutdown -s -f -t 600 — задаёт время выключения — 600 секунд, то есть 10 минут;
- pause — останавливает выполнение батника до нажатия любой кнопки клавиатуры.
Это очень легко, добавим функционала нашему bat-файлу. Для этого воспользуемся командой set, которая позволяет задавать пользовательские переменные. То есть, при запуске батника консоль будет спрашивать нас примерно следующее: «Через сколько секунд выключить компьютер?», а мы каждый раз можем вводить нужное значение и жать клавишу Enter. Вот как будет выглядеть код нашего батника:
echo off chcp 1251 set /p sec_off=»Выключить компьютер через: » echo Компьютер будет выключен через %sec_off% секунд shutdown -s -f -t %sec_off% pause
где:
- set /p sec_off= — задаём значение переменной sec_off;
- echo — выводим в уведомление заданное значение секунд;
- shutdown -s -f -t %sec_off% — выключаем компьютер спустя заданное в начале количество секунд.
Уже лучше, но можно усовершенствовать. Задавать время выключения в секундах не очень удобно. Мы будем использовать минуты (можно по аналогии настроить и часы). Однако, консоль Windows не поймёт нашего значения в минутах, поэтому для неё мы будем осуществлять перевод в секунды. Вот как это будет выглядеть:
echo off chcp 1251 set /p min_off=»Выключить компьютер через (минут): » set /A sec_off=»%min_off% * 60″ echo Компьютер будет выключен через %min_off% минут shutdown -s -f -t %sec_off% pause
где:
- set /p min_off= задаём значение переменной min_off;
- set /A sec_off= задаём значение переменной sec_off, умножая количество минут на 60, чтобы получить для консоли секунды;
- echo — выводим в уведомлениях заданные минуты;
- shutdown -s -f -t %sec_off% подставляем полученное значение в секундах.
В принципе, на этом можно остановиться. Готовые батники выключения, перезагрузки и отмены завершения работы с приведённым кодом можно скачать из прикреплённого к статье архива: auto-shutdown-reboot-bat.
Но можно ещё немного улучшить бат-файлы и сделать из трёх один, преобразовав его в крошечную программу. Этим и займёмся ниже.
к содержанию
Dr.Batcher – программа для создания bat-файлов и их редактирования
Пускай ныне использование bat-файлов и не так востребовано пользователем, все же для решения многих задач на компьютере эффективнее прибегать к их помощи. Если новичку, изредка использующему командный интерпретатор, хватит функционала блокнота, то для системного администратора и варезника, занимающегося созданием сборок Windows или автоматически устанавливаемого программного обеспечения для нее, необходим более совершенный и удобный инструмент для работы с документами формата bat. Им является утилита Dr.Batcher. Интерфейс и функционал программы мало чем отличается от блокнотов, таких как Notepad++. В главном меню расположены кнопки часто используемых команд. Dr.Batcher нумерует страницы, поддерживает закладки, содержит список системных команд для bat-файлов и подсвечивает синтаксис введенных команд.
Создание bat-файла в Dr.Batcher
- Запускаем приложение.
- Вызываем пункт «File» его главного меню и жмем «New». То же выполняется нажатием на иконку чистого листа, расположенную под меню «File».
- В диалоговом окошке выбираем «Empty Batch File».
На экране появится окно программы со всеми необходимыми для работы с bat-файлами функциями.
Редактирование через контекстное меню bat-файла
- Вызываем контекстное меню документа формата bat.
- В выпавшем списке выбираем «Edit with Dr.Batcher».
Затем запустится окно программы с содержимым нашего текстового командного файла, где можно вносить коррективы в его содержимое.
Редактирование bat-файлов через программу Dr.Batcher
- Запускаем приложение Batcher.
- Вызываем пункт «File» ее главного меню.
- Выбираем «Open» в выпавшем меню.
То же самое выполняется нажатием на иконку папки, расположенную под главным меню.
- В диалоговом окне открытия файлов указываем путь к необходимому документу формата bat и жмем «Открыть».
Наш bat-файл откроется в окне Dr.Batcher и в него можно будет вносить корректировки.
Как из bat файла обойти проверку даты
Некоторое программное обеспечение при запуске проверяет текущую системную дату. Если дата больше, чем заложено разработчиком, то программа не запускается. Например, разработчик считает, что версия программы может отработать месяц, а потом пользователь должен будет установить обновленную версию программы. С одной стороны это забота о пользователе, который будет иметь в своем распоряжении свежую версию программы с устраненными недочетами, по отношению к прошлым версиям. С другой стороны, производитель вынуждает пользователя скачивать новую версию даже если пользователя полностью устраивает та версия программы, которая у него установлена. Данную проблему можно легко решить при помощи следующего пакетного файла, который будет запускать программу, дожидаться ее завершения и возвращать дату на ту, которая была до запуска программы.
set tempdate=%date:~-10% date 01-01-04 notepad.exe date %tempdate%
В данном примере текущая системная дата сначала сохраняется в переменной, затем (во второй строке) системная дата устанавливается на 1-е января 2004 года, а потом вызывается программа, которая проверяет системную дату. В данном примере это Блокнот. До тех пор, пока открыт Блокнот, пакетный файл находится в ожидании, не завершаясь и не переводя системную дату обратно. Как только Блокнот будет закрыт, пакетный файл продолжит свое выполнение и установит системную дату на сохраненное в переменной tempdate значение, т.е. на то, которое было до запуска пакетного файла.
Не забывайте, что если путь до файла, которым запускается программа, содержит пробелы, то его (путь) необходимо заключить в кавычки. Если путь содержит кириллицу, то при написании пакетного файла необходимо использовать текстовый редактор, поддерживающий кодировку DOS (например, FAR). В противном случае, при запуске пакетного файла будет выведено сообщение о том, что «указанный файл не является внутренней или внешней коммандой…».
Если программа проверяет текущую системную дату только при своем запуске и во время работы больше этого не делает, то пакетный файл можно модифицировать, добавив перед именем исполняемого файла программы оператор start, т.е. наш пример будет выглядеть так:
set tempdate=%date:~-10% date 01-01-04 start notepad.exe date %tempdate%
В этом случае, пакетный файл изменит системную дату, запустит программу и не дожидаясь ее завершения вернет дату на ту, которая была до запуска программы.
Параметры
not Задает выполнение команды только в случае невыполнения условия. errorlevel число Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа. команда Команда, которая должна быть обработана в случае выполнения условия. строка1==строка2 Условие выполняется, если строки строка1 и строка2 совпадают. Строки могут быть заданы явно или могут быть пакетными переменными (например, %1). Явно заданные строки нет необходимости заключать в кавычки. exist имя_файла Условие выполняется, если существует файл с именем имя_файла. оп_сравнения Трехзначный оператор сравнения. В следующей таблице перечислены допустимые значения оп_сравнения.
Оператор | Описание |
---|---|
EQU | равно |
NEQ | не равно |
LSS | меньше |
LEQ | меньше или равно |
GTR | больше |
GEQ | больше или равно |
/i Сравнение строк без учета регистра знаков. Параметр /i можно использовать в конструкции string1==string2 команды if. Эти сравнения являются общими. Если и строка1, и строка2 состоят из цифр, строки преобразовываются в числа и выполняется сравнение чисел. cmdextversion число Условие выполняется, только если номер внутренней версии, связанный с расширениями командного процессора Cmd.exe, равен или больше числа. первая версия имела номер 1. Номер версии увеличивается на 1 при внесении в расширения командного процессора значительных изменений. Условие с cmdextversion не выполняется, если расширения командного процессора запрещены (по умолчанию они разрешены). defined переменная Условие выполняется, если переменная определена. выражение Команда и все ее параметры для обработке в командной строке при выполнении оператора else. /? Отображение справки в командной строке.
Послесловие
Как я уже сказал и Вы сами наверное осознали — использование подобного bat файл ‘а зачастую экономит кучу времени, т.е. один раз написал и периодически запускаешь одним кликом и вместо многоминутных тычков мышкой и ползания по всем папкам получаешь автоматизированный процесс копирования.
При желании можно поставить запуск этого bat-ника в определенные дни через планировщик Windows (или другие программы позволяющие это делать) и вообще забыть о проблеме долгих ручных backup’ов.
Если есть какие-то вопросы или проблемы — спрашивайте. Как всегда помогу чем смогу 😉
PS: Если мне не изменяет память, то это кусочек темы из умных админских книжек, а именно из раздела «Автоматизация администрирования».. так что можете собой гордится 🙂
Специфики работы
Для начала необходимо освоиться в перечне команд, которые пригодны для командной строки. Пропишите слово «help» и нажмите «Enter». Это клавиша служит для подтверждения всех команд и попадания на новой строке.
Если в строке требуется наличия скопированного текста, тогда в ней наведите курсор на любое пустое место и кликните правой кнопкой. Из появившегося меню выберите опцию «Вставить». Можно поместить текст комбинацией «Ctrl+V».
Чтобы скопировать слова из этой строки, выделите их левой кнопкой мышки и нажмите «Enter».
Для более удобной и оперативной работы можно все команды предварительно прописать в текстовом документе. Проверьте точность их написания. Затем просто копируйте и вставляйте их в нужные места.
Как запустить командный файл в Windows 10
В Windows 10 вы можете запустить командный файл как минимум тремя способами. Вы можете запустить пакет по требованию, используя проводник или командную строку. Вы можете создать запланированное задание с помощью планировщика заданий. Или вы можете поместить скрипт в папку «Автозагрузка», чтобы запускать его каждый раз при входе в устройство.
Запуск пакетного файла по требованию
Если вам нужно запустить скрипт по требованию, вы можете использовать проводник или командную строку.
Проводник
Чтобы запустить пакетный файл с помощью проводника, выполните следующие действия:
- Откройте проводник.
- Найдите папку со сценарием.
- Дважды щелкните командный файл, чтобы запустить его.
- (Необязательно) Если вы выполняете команду, требующую прав администратора, вам нужно запустить сценарий от имени администратора, щелкнув правой кнопкой мыши пакетный файл и выбрав опцию Запуск от имени администратора.
После того, как вы выполните шаги, пакет будет выполнять каждую команду в последовательности, отображая результаты в терминале.
Командная строка
Чтобы запустить командный файл из командной строки, выполните следующие действия:
- Откройте командную строку от имени администратора.
- Введите путь и название командного файла и нажмите Enter:
Например, следующая команда запускает пакетный файл, расположенный в пользовательской папке «batch» внутри папки «Downloads»:
После того, как вы выполните эти шаги, выходные данные будут отображаться на экране, даже если скрипт содержит команду «PAUSE».
Запуск пакетного файла по расписанию
Чтобы запланировать запуск пакетного файла в Windows 10, вы можете использовать планировщик задач, выполнив следующие действия:
- Откройте Пуск.
- Введите планировщик заданий и щелкните по верхнему результату, чтобы открыть приложение.
- Щелкните правой кнопкой мыши ветку «Библиотека планировщика заданий» и выберите опцию Создать папку….
- Введите имя для папки – например, MyScripts.
Необязательно создавать папку, но рекомендуется организовать ваши задачи.
- Нажмите кнопку ОК.
- Щелкните правой кнопкой мыши папку MyScripts.
- Выберите опцию Создать простую задачу.
- В поле «Имя» введите краткое описательное имя для задачи – например, SystemInfoBatch.
- (Необязательно) В поле «Описание» создайте описание для задачи.
- Нажмите кнопку Далее.
- Выберите опцию Ежемесячно.
В Windows 10 планировщик задач позволяет выбрать несколько триггеров, в том числе на определенную дату, во время запуска или при входе любого пользователя в устройство. В зависимости от ваших требований вам нужно будет настроить дополнительные параметры. В этом случае мы выбираем вариант запуска задачи каждый месяц.
- Нажмите кнопку Далее.
- Используя настройку «Начать», укажите день и время запуска задачи.
- Используйте выпадающее меню «Месяцы», чтобы выбрать месяцы года, в которые вы хотите выполнить задачу.
- Используйте выпадающее меню «Дни» или «В:», чтобы указать дни, в которые будет выполняться задание.
- Нажмите кнопку Далее.
- Выберите опцию Запустить программу, чтобы запустить пакетный файл.
- В поле «Программа/скрипт» укажите путь к пакетному файлу.
- Нажмите кнопку Готово.
После выполнения этих действий задача сохраниться и запустит пакетный файл по указанному вами расписанию.
Запуск пакетных файлов при запуске
В качестве альтернативы, если вы хотите запускать пакетный файл каждый раз, когда вы входите в свое устройство, вместо использования планировщика заданий, вы можете сохранить сценарий в папке «автозагрузка».
Чтобы запустить скрипт при запуске, используйте следующие простые шаги:
- Откройте проводник.
- Найдите папку с командным файлом.
- Щелкните правой кнопкой мыши файл и выберите параметр Копировать.
- Используйте комбинацию Win + R, чтобы открыть окно «Выполнить»
- Введите следующую команду: shell:startup
- Нажмите Вставить на вкладке «Главная» в папке «Автозагрузка». (Или вы можете нажать кнопку «Вставить ярлык», чтобы создать ярлык для командного файла.)
- Выйдите из учетной записи Windows 10.
- Войдите в аккаунт.
После выполнения этих шагов каждый раз, когда вы входите в учетную запись Windows 10, командный файл будет выполняться и выполнять команды в последовательности.
Мы ориентируем это руководство на Windows 10, но возможность использовать пакетные файлы существует давно, а это означает, что вы можете обратиться к этим инструкциям, если вы всё ещё используете более старую версию, включая Windows 8.1 или Windows 7.
Основные операторы bat-файла:
- ECHO: отображает текст в DOS-окне;
- ECHO OFF: отменяет показ текста команд в DOS-окне, показывая подсказку и выполненный результат;
- @ECHO OFF: отменяет показ текста команд и подсказок, показывая выполненный результат;
- XCOPY: используется для копирования каталогов и файлов с добавочными параметрами;
- START: запускает исполняемый файл .exe со своим стандартным приложением, открывает каталог;
- FOR/IN/DO: применяется для указания файлов;
- MKDIR: создает каталоги;
- REM: для ввода строки комментария в программе;
- RMDIR: для удаления каталогов;
- DEL: для удаления файлов;
- COPY: для копирования файлов;
- TITLE: редактирование заголовка окна.
Применение некоторых из перечисленных команд показано на примере ниже. Необходимо отметить, что команда @echo off скрывает путь выполняемой команды, отображаемый cmd на DOS-экране.
Команда @echo off скрывает путь выполняемой команды
Запуск программ в файле bat происходит с помощью команды start и указанием имени запускаемой программы.
Запуск программ в файле bat происходит с помощью команды start
Также в файле может быть прописан полный путь до исполняемого файла.
В файле прописан полный путь до исполняемого файла
Обе эти записи для firefox работают корректно. Однако, они обе корректны только для зарегистрированных в Windows приложений. Если попробовать запустить портативную программу (например, filezilla) без прописи всего пути к запускаемому файлу, она не запустится.
Оператор IF с логическим ИЛИ (OR) в bat файле
С оператором OR так просто не получится, причем есть разные способы.
Способ 1 – через последовательные ИЛИ
Каждое условие записывается в отдельный IF, каждый из которых заносит результат в общую переменную. В итоге, если было выполнено хотя бы одно из условий, в общей переменной будет этот результат.
В примере ниже значение переменной a сравнивается с тремя значениями, и для любого из value1, value2, value3 условие будет выполнено. А если задать a какое-то другое значение, например, set a=value4, то условие выполнено не будет, что нам и нужно:
Способ 2 — через И и НЕ
Этот способ основан на том факте, что логическую операцию ИЛИ можно представить через операции И и НЕ, например, a OR b эквивалентно NOT ( NOT A AND NOT B ). Оператор NOT уже есть в bat файлах, а оператор AND можно представить через последовательные IF, как мы видели выше.
Поэтому тот же результат можно получить по-другому:
Этот способ занимает немного меньше строк, чем предыдущий.
Что такое bat и зачем это нужно?
Бат – это расширение файла (bat). Наверняка многие юзеры знают, что каждый файл имеет свое расширение. Это последняя строчка после точки в названии. Именно этот «хвостик» нужен для определения системой как музыка, видео, изображение или любой другой. Можете даже поэкспериментировать. Возьмите любую картинку и переименуйте вместе с расширением. Виндовс сразу оповестит, что вы изменяете расширение, и файл может не определяться системой. Согласитесь с запросом и увидите, что ваша картинка уже не отображается как изображение. Если переименовать как прежде, все снова восстановится. Если у вас не видны расширения, необходимо активировать эту функцию в проводнике, во вкладке «вид».
Для Windows бат – это файл с инструкциями на определенные действия, которые заложены в самом бат файле. Пустой файл формата бат запустится, но никаких действий выполнятся, не будет. Батник это набор инструкций для консоли Windows.
Проверяем результат
В начале статьи мы уже упоминали, как правильно нужно запускать такие файлы. Теперь необходимо это применить на практике. Запускаем с применением админ. прав, и смотрим на результат.
Запуск документа в командной строке
Как только вы нажмете на любую клавишу, запустится второй сценарий. Вы увидите полный список всех папок на диске С, отображены будут даже системные и скрытые.
Окончание работы с bat файлом
Нажав ещё раз, документ закроется. Можно считать процедуру завершенной.
На практике создание файлов из описанной категории не является сложным. Справиться сможет даже начинающий пользователь. А если уделять больше времени на практику написания кодов, пользователь сможет самостоятельно делать и более серьезные вещи в сфере программирования.
Создание пакетного файла с помощью утилиты «Dr.Batcher»
Указанный программный продукт является платным, но предоставляет возможность использовать тестовую версию в течение 30 дней.
Утилита «Dr.Batcher»
Шаг 1. Для создания файла воспользуйтесь меню «File», пункт «New…» или комбинацией клавиш «Ctrl+N».
Создаем файл
Шаг 2. В диалоговом окне отметьте «Empty Batch File» и нажмите «ОК».
Отмечаем «Empty Batch File» и нажимаем «ОК»
Шаг 3. Укажите, какие команды должен выполнять bat файл.
Указываем, какие команды должен выполнять bat файл
В правом фрейме имеются ключевые команды, которые можно использовать при написании кода
Шаг 4. Сохраните получившийся файл в нужную директорию.
Сохраняем получившийся файл в нужную директорию
Указанная утилита позволяет производить отладку программы «на лету»
Длинные имена в bat-файлах
Иногда в bat встречаются программы, не работающие с длинными именами с пробелами – обычно это некоторые старые программы для MS-DOS. В этих случаях помогает использование коротких DOS-имен без пробелов, а также кавычек.
Правила записи коротких DOS-имен (формат 8.3): задействуется шесть начальных символов имени папки, не учитывая пробелы, далее указывается ее номер по порядку через ~. Например: start C:Program FilesMozilla Firefoxfirefox.exe преобразуется в: start C:Progra~1Mozill~1firefox.exe.
Возможна ситуация, когда в одном каталоге имеются несколько папок с одинаковыми символами в названии.
В одном каталоге имеются несколько папок с одинаковыми символами в названии
Их короткие имена в этом случае должны нумероваться в соответствии с алфавитным порядком папок:
- Mozill~1;
- Mozill~2;
- Mozill~3.
Однако, если Mozilla Firefox будет удален с компьютера, следующие за Mozill~1 записи работать не будут. Поэтому, короткие DOS-имена – не лучший вариант решения проблемы длинных имен. Создание имен этого типа на NTFS также бывает отключено в реестре Windows.
Для решения проблемы длинных имен запись также может быть заключена в кавычки. Кавычки «», располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом, включающим какой-либо заголовок или только кавычки.
Кавычки, располагающиеся перед прописываемым путем к запускаемому файлу, являются обязательным атрибутом
Однако, в некоторых случаях кавычки не работают совсем. В этом случае возможно использование команды изменения текущего рабочего каталога Chdir (CD). Запись start firefox.exe приобретает в этом случае следующий рабочий вид.
Запись start firefox.exe приобретает рабочий вид
Справка. Команда CD – пожалуй, единственное универсальное решение вопроса длинных имен в bat-файлах.
Как перенаправить результат выполнения команд в файл
Часто, при выполнении сложного bat файла в автоматическом режиме проверить результаты его работы бывает затруднительно по многим причинам. Поэтому проще записывать результаты работы команд batch файла в текстовый файл (лог-файл). а потом анализировать правильность работы bat файла по этому логу.
Перенаправить результат работы команд bat файла в лог-файл достаточно просто. Далее будет показано, как это можно сделать.
Создайте bat-файл следующего содержания (скопируйте эти строки в Блокнот и сохраните файл с расширением bat):
@echo off echo Start %time% echo Create test.txt echo test>C:\test.txt echo Copy Test.txt to Old_test.txt copy C:\test.txt C:\Old_test.txt echo Stop %time%
Первая строка отключает вывод самих команд. Таким образом, в лог-файл будут записаны только результаты их выполнения.
Вторая строка записывает в лог-файл время начала работы пакетного файла.
Третья строка записывает в лог-файл пояснение того, что следующая команда создаст файл test.txt
Команда из четвертой строки создает файл test.txt с корне диска С. Файл создается для примера. Эта команда записывает в файл C:\test.txt слово test
Пятая строка выводит в лог-файл пояснение, что следующая команда выполняет копирование файла из одного места в другое.
Команда в шестой строке копирует созданный файл C:\test.txt в файл C:\Old_test.txt, т.е. создается копия файла под новым именем.
Последняя, седьмая строка содержит команду вывода времени завершения работы пакетного файла. В сумме с записью в лог-файл времени начала работы пакетного файла эти два значения времени дают возможность оценить время работы пакетного файла.
Сохраните этот пакетный файл под именем, например, 1.bat
Предположим, что отчет о работе пакетного файла мы бы хотели хранить в отдельной папке и каждый день записывать отчет с новым именем файла, чтобы была возможность в любой из дней обратиться к логам за предыдущие дни. Причем, имя лог-фала хотелось бы иметь в виде даты работы пакетного файла. Чтобы все это реализовать создадим на диске С (например) папку с именем LOG, т.е. полный путь к ней будет выглядеть C:\LOG. Созданный пакетный файл 1.bat будем запускать следующей командой:
1.bat>C:\LOG\%date~-10%.txt
Если пакетный файл будет запускаться из Планировщика, то нужно указать полный путь с bat-файлу. Помните, что если в пути есть пробелы, то надо использовать либо кавычки, либо формат 8.3. Т.е., если путь к bat-файлу C:\Program Files\1.bat, например, то в командной строке Планировщика для запуска bat-файла нужно указать одну из следующих строк:
"C:\Program Files\1.bat">C:\LOG\%date~-10%.txt C:\Progra~1\1.bat>C:\LOG\%date~-10%.txt
После запуска файла 1.bat в папке C:\LOG будет создан файл с именем, равным дате запуска bat-файла, например, 13.01.2004.txt Это и будет отчет о работе пакетного файла 1.bat
Запуск bat-файла, пример которого показан в первом листинге вверху страницы, указанной выше командой, приведет к созданию лог-файла такого содержания:
Start 19:03:27,20 Create test.txt Copy Test.txt to Old_test.txt Скопировано файлов: 1. Stop 19:03:27,21
Таким образом, для выполнения перенаправления результатов работы bat-файла в лог-файл нужно использовать символ перенаправления > Синтаксис таков:
Путь\ИмяФайла.bat>Путь\ИмяЛогФайла.txt
Расширение лог-файла может быть любым. При желании, отчет о выполнении пакетного задания можно оформить даже в виде страницы html (соответствующие теги могут быть выведены в лог-файл так, как выводились комментарии в примере 1.bat) и скопировать его на корпоративный сервер.
Как создать bat файл для запуска программы?
Чтобы создать батник, необходимо запустить редактор текста, затем сохранить файл с конечным именем bat. При отсутствии в вашем редакторе нет функции сохранения с таким расширением, то его необходимо прописать самостоятельно. При запуске такого файла у нас откроется консоль и если никаких команд не будет, то она тут же закроется.
Теперь давайте зададим команду для запуска программы. Для этого необходимо открыть наш созданный батник в блокноте или другом редакторе и прописать команду.
На примере запустим браузер. Необходимо сначала вписать команду Start и после пробела написать Opera.
Выглядеть это должно так:
Start Opera
Такая сработает для программ известных системе, но если произвести запуск софта, который не известен системе, потребуется прописать весь путь к программе. Например если у вас ftp установлен в папку Program Files то для того чтобы его запустить нужно ввести команду
start filezilla
А если ftp клиент установлен в другую папку нужно будет прописать весь путь.
Эта технология поможет при выполнении разного рода задач, причем в автоматическом режиме. Некоторые пользователи даже пишут таким образом вирусы. Чтобы невозможно было изменить конфигурацию файла с помощью редактора текста, необходимо конвертировать файл bat в exe. Это поможет сделать различный вспомогательный софт, который вы можете найти в сети. Например, для преобразования bat в exe поможет программа Bat to exe converter.
Функция бат очень полезна и порой необходима. С помощью нее можно писать целые программы узкого спектра действия. Область применения зависит только от знаний команд и умения их совмещать. Поэтому пользуйтесь и расширяйте свои навыки и умение пользоваться компьютером на уровне Супер пользователя.
А можно создать в bat-файле функцию?
Да, можно. Более того, иногда даже нужно. Правда, функциями это можно назвать условно. Есть особый синтаксис команды call, который позволяет перейти на метку в этом же bat-файле с запоминанием места, откуда был произведен этот вызов:
call :метка аргументы |
Возврат из функции производится командой:
exit /b |
Ключ /b здесь очень важен: без него будет произведен выход не из функции, а из сценария вообще.
За подробностями обращайтесь к:
call /? exit /? |
Что интересно, команда call с таким синтаксисом поддерживает рекурсивные вызовы с автоматическим созданием нового фрейма для переменных аргументов %0-%9. Иногда это может быть полезным. Вот классический пример рекурсивного подсчета факториала на командном языке:
@echo off call :factorial %1 echo %RESULT% exit rem Функция для подсчета значения факториала rem Вход: rem %1 Число, для которого необходимо подсчитать факториал rem Выход: rem %RESULT% Значение факториала :factorial if %1 == 0 ( set RESULT=1 exit /b ) if %1 == 1 ( set RESULT=1 exit /b ) set /a PARAM=%1 - 1 call :factorial %PARAM% set /a RESULT=%1 * %RESULT% exit /b |
Пример работы:
> factorial.bat 10 3628800 |
Использование BAT в EXE Converter
Если первый способ сбивает вас с толку, вы можете загрузить одно из сторонних приложений. Большинство сторонних инструментов специально разработано для этого конкретного преобразования двух файлов. BAT в EXE Converter является одним из известных инструментов, которые большинство пользователей используют для преобразования пакетных сценариев. Выполните следующие шаги, чтобы попробовать конвертер BAT в EXE:
- Откройте браузер и загрузите BAT в EXE Converter Установщик. Установите инструмент, запустив установщик.Загрузка BAT в EXE Converter
- Дважды щелкните ярлык BAT to EXE Converter, чтобы открыть его. Нажмите на значок кнопки Открыть в верхней части. Выберите файл пакетного сценария и нажмите кнопку «Открыть».Открытие пакетного скрипта в BAT в EXE Converter
- Теперь нажмите на значок кнопки «Преобразовать» вверху и выберите имя и местоположение, чтобы сохранить преобразованный файл.Преобразование и сохранение файла EXE
- Исполняемый файл для пакетного скрипта будет создан.
Меняем формат файла и пробуем его запустить
Сначала открываем «Мой компьютер», там переходим «Сервис» — «Свойства папки» — «Вид» и снимаем галочку «Скрывать расширение для зарегистрированных типов файлов».
Жмем «Применить» и «Ок». Теперь мы можем менять расширение известных системе файлов, а посему направляемся к нашему файлику, жмем правой кнопкой мышки, выбираем «Переименовать» и методом печатания на клавиатуре меняем расширение с txt на bat (на вопрос системы стоит ли это делать отвечаем утвердительно).
В результате мы имеем следующую картину (в вашем случае файлик называется иначе, но имеет тот же формат):
Собственно, все, что нам остается — это запустить этот файл простым кликом по нему мышки.
Если Вы все сделали правильно, то перед Вами промелькнет консоль и по известному пути появится новая папочка с заданным заранее названием и файлами внутри скопированными из известной Вам папки, т.е картина получится примерно следующая:
Ну или несколько другая, в зависимости от того какие пути и названия папок Вы прописывали в команде.
Отредактировать файлик можно сменив ему расширение обратно на .txt и открыв любым текстовым редактором.