Как написать свой bat файл для создания резервной копии. Как сделать bat файл для запуска программы
Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.
Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.
Как создать файл с расширением BAT
Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».
Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».
Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.
Вместо расширения BAT можно использовать CMD, результат выполнения скрипта будет точно таким же.
Основные команды, синтаксис и примеры использования батников
Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.
Открываем пустой батник и вставляем в него такие команды:
Start "" "C:/Program Files/Google/Chrome/Application/chrome.exe" timeout /t 05 start "" "C:/Program Files/Mozilla Firefox/firefox.exe" timeout /t 05 start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"
Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251 , в противном случае интерпретатор не сможет правильно прочитать путь.
При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:
Start /b "" "путь"
Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause . Попробуйте заменить ею timeout и увидите, что получится.
Start /b "" "путь" pause
Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s , /r и /t . При желании можно добавить в батник запрос на выполнение действия, вот так:
@echo off chcp 1251 echo "Вы действительно хотите выключить компьютер?" pause shutdown /s /t 0
Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.
Если вместо русского текста при выполнении команды вы увидите крякозябры, попробуйте преобразовать файл скрипта в ANSI.
Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:
Del /A /F /Q "D:/data"
А можно и так:
Forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"
В отличие от первой, вторая команда удаляет файлы рекурсивно, то есть в папке data будут удалены все файлы плюс те, которые лежат во вложенных каталогах.
А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy :
Robocopy C:/data D:/backup /e pause
Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.
Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat
Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора. Понадобиться они могут и батникам. Самый очевидный способ запустить скрипт от имени администратора, это кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню соответствующую опцию.
Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.
Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.
И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.
Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs , предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:\script.bat" & Chr(34), 0 Set WshShell = Nothing
Есть также и другие варианты, например, использование утилиты Hidden Start , позволяющей запускать исполняемые и пакетные файлы в скрытом режиме, в том числе без приглашения .
А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.
Инструкция
Запустите программу «Блокнот» для создания Bat-файла. Далее введите текст файла. Он будет различным в зависимости от того, что вы хотите им запустить. Например, создайте bat-файл для подключения к интернету, если ваше подключение запрашивает логин и пароль.
Это можно сделать в случае если сам доступ в интернет уже настроен и ярлык для подсоединения к интернету существует. В файле вам необходимо ввести следующий текст: Radial «Введите название подключения» «Введите логин» «Введите пароль». Например, radial megafon-moskva sdk23SsdkP1 125523.
Сохраните полученный файл. Для этого выполните команду «Файл» – «Сохранить как», введите любое имя файла, затем введите расширение *.bat. Теперь вы можете добавить ярлык для файла в автозагрузку, чтобы подключение к интернету осуществлялось автоматически при запуске операционной системы.
Используйте команду start при создании Bat-файла для запуска приложений. Для этого введите следующий текст в файле: start «Введите полный путь к программе/файлу». Обратите внимание, что длинные имена папок и файлов необходимо сокращать с помощью символа ~, например, вместо названия C:/Program Files введите C:/Progra~, при условии, что на диске нет больше папок, начинающихся с данных символов.
Сохраните файл аналогично шагу 3. Если вы сохраните для запуска программы в папке с программой, нет необходимости прописывать в нем полный путь к приложению, достаточно указать только исполняемый файл, например, start «Winword.exe». Ярлык же для данного файла вы можете вынести в любое место компьютера. Также вы можете использовать батники для создания файлов, например, чтобы создать на диске С файл с именем Program.txt, используйте следующую команду: @echo Start file>C:/Program.txt.
Для того чтобы просмотреть видео, размещенное в сети, вовсе не обязательно скачивать его на компьютер. Вы можете просмотреть его в режиме онлайн. Для этого достаточно выполнить ряд простых рекомендаций.
Инструкция
Прежде всего вам потребуется установка флеш-плеера. Данная программа позволит вам просматривать клипы и в режиме , вне зависимости от ресурса, на котором размещен файл. Для этого перейдите по ссылке http://get.adobe.com/ru/flashplayer/ и нажмите на кнопку Download, расположенную по центру страницы. Сохраните файл и запустите его. После запуска окна установки потребуется закрыть браузер. Осуществите данное действие, после чего завершите установку и вновь запустите браузер. После этого вы сможете просматривать видео в режиме онлайн.
Для просмотра видео высокого качества потребуется максимально увеличить скорость загрузки. Наиболее действенным способом для увеличения скорости является изменение тарифного плана, согласно которому вы осуществляете выход в сеть. Проведите сравнительный анализ предложений от поставщиков услуги доступа к сети в вашем городе, после чего выберите тот тарифный план, который является для вас наиболее подходящим.
В случае если предыдущий шаг вам не подходит, минимизируйте количество программ, использующих подключение к сети на вашем компьютере. С помощью этого шага вы освободите канал доступа к сети для загрузки видео при просмотре в режиме онлайн. Отключите менеджеры загрузок, торренты, а также все программы, скачивающие обновления в данный момент времени. Закройте приложения, находящиеся на панели задач, а также те, которые находятся в трее. Проконтролируйте их отключение, запустив диспетчер задач и перейдя на вкладку процессов. Там же вы сможете закрыть приложения, скачивающие обновления - их вы сможете определить по слову update в названии.
В этой статье:
- Определение переменных
- Переменные командной строки (параметры вызова bat-файла)
- Оператор условия IF
- Функции
- Использование возвращаемых значений (обработка кода завершения программы)
Определение переменных
SET <Имяпеременной>=<Значениепеременной>
Оператор SET представляет собой расширение возможностей работы с параметрами в операционной системе. Он задает переменную, значение которой подставляется вместо ее имени при любом использовании этого имени между знаками процента. Так, если задано (переменная, которую требуют многие игры, использующие звуковую карту компьютера):
SET BLASTER=A220 I5 D1 P330
то при использовании в пакетном файле следующей конструкции:
ECHO %BLASTER%
на экран будет выведено "A220 I5 D1 P330". Переменные, определенные с помощью оператора SET называются переменными окружения среды (environment) и являются видимыми после выполнения до перезапуска DOS (если не изменять ее вручную в памяти). То есть, ее можно использовать из одного пакетного файла или программы после задания в другом. Наиболее известной является переменная PATH, представляющая собой набор путей для быстрого поиска файлов. Она задается в файле autoexec.bat.
Переменные командной строки
(параметры вызова bat-файла)
%<цифра 0-9>
Как и в любом языке, в языке пакетных файлов возможно использование переменных, полученных в качестве параметров bat-файла.
Всего может быть 10 одновременно существующих независимых переменных. Для написания сложных программ это довольно мало, хотя для обычной работы часто хватает и 3-4. Значение переменной равно значению соответствующего параметра из командной строки. Переменная %0 будет содержать имя.bat-файла и, если вы указали, путь к нему. То есть, если вы запустили файл abc.bat со следующими параметрами:
abc.bat a bc def
то переменная %0 будет содержать значение abc.bat , %1 будет содержать значение a, %2 будет содержать bc , а %3 - def . Это свойство широко используется для создания универсальных пакетных файлов при работе с повторяющимися операциями.
Чтобы получить более чем 10 переменных из командной строки, можно воспользоваться командой SHIFT .
Команда SHIFT позволяет использовать число параметров командной строки далее 10. Однако, при этом теряются соответственно более ранние параметры. Иными словами, команда SHIFT сдвигает все значения переменных на один шаг влево. То есть, переменная %0 будет содержать значение, содержавшееся до этого в переменной %1 , а переменная %1 - значение переменной %2 до сдвига. Однако, данная операция является необратимой, то есть, невозможно сдвинуть переменные обратно.
Оператор условия IF
К счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения IF с метками. Блоки команд заключаются в круглые скобки. Выглядит это так (имитируя C/C++ indentation style):
if condition (
Rem Команды ветки ‘then’
Rem ...
) else (
Rem Команды ветки ‘else’
Rem ...
Конкретный пример использования:
@echo off
set BUILDMODE=%1
if "%BUILDMODE%" == "" (
Echo FAIL: Аргумент является обязательным ^(--debug, --release^)
Exit /b 1
rem Удаляем из аргумента все дефисы для упрощения обработки
set BUILDMODE=%BUILDMODE:-=%
if "%BUILDMODE%" == "debug" (
Set CCFLAGS=/Od /MDd /Z7
) else (
Set CCFLAGS=/O2 /MD
На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:
if "%BUILDMODE%" == "debug" (
Echo INFO: Устанавливаем debug-режим окружения
Set OPTFLAGS=/Od
Set CCFLAGS=%OPTFLAGS% /MDd /Z7
) else (
Echo INFO: Устанавливаем release-режим окружения
Set OPTFLAGS=/O2
Set CCFLAGS=%OPTFLAGS% /MD
Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.
Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…% , будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe , либо использованием команды:
в тексте самого bat-файла. Второй способ мне представляется более удобным – не очень здорово требовать от кого-то запуска твоего сценария с определенным параметром.
С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:
setlocal enabledelayedexpansion
if "%BUILDMODE%" == "debug" (
Echo INFO: Setting up debug mode environment
Set OPTFLAGS=/Od
Set CCFLAGS=!OPTFLAGS! /MDd /Z7
) else (
Echo INFO: Setting up release mode environment
Set OPTFLAGS=/O2
Set CCFLAGS=!OPTFLAGS! /MD
Вот теперь это почти полноценный if-then-else блок. Почти, потому что если в одной из команд echo у вас встретится закрывающая круглая скобка, то вам необходимо заэкранировать ее символом ^, иначе синтаксический анализатор путается…
Но в любом случае, это гораздо лучше безумного количества меток и переходов.
Функции
А можно создать в 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-файл по нему выполняет различные действия.
Каким же образом пакетный файл может узнать код завершения выполненной программы? Для этого предусмотрено ключевая переменная ERRORLEVEL .
Пример пакетного файла с errorlevel"ами:
@ECHO OFF
REM Запускаем программу prg1.exe
PRG1.EXE
REM Анализ кода завершения
IF ERRORLEVEL 2 GOTO FILENOTFOUND
IF ERRORLEVEL 1 GOTO WRITEERROR
IF ERRORLEVEL 0 GOTO EXITOK
GOTO ONEXIT
:FILENOTFOUND
ECHO Ошибка! Файл не найден!
GOTO ONEXIT
:WRITEERROR
ECHO Ошибка записи!
GOTO ONEXIT
:EXITOK
ECHO Программа завершена благополучно.
GOTO ONEXIT
:ONEXIT
Обратите внимание - анализ кода завершения начинается не с нуля, а с максимально возможного значения. Дело в том, что подобная проверка означает: "если errorlevel больше или равен значению, то...". То есть, если мы будем проверять, начиная с нуля, любое значение будет истинным на первой же строке, что неверно.
Это самая распространенная ошибка в подобного рода программах.
Приветствую! Сегодня я решил рассказать вам о бат файлах, или батниках, как их называют по-простому. Предполагаю, что применение бат файлов будет полезно для каждого пользователя компьютера, расширит возможности и упростит выполнение многих задач.
Что такое бат и зачем это нужно?
Бат – это расширение файла (bat). Наверняка многие юзеры знают, что каждый файл имеет свое расширение. Это последняя строчка после точки в названии. Именно этот «хвостик» нужен для определения системой как музыка, видео, изображение или любой другой. Можете даже поэкспериментировать. Возьмите любую картинку и переименуйте вместе с расширением. Виндовс сразу оповестит, что вы изменяете расширение, и файл может не определяться системой. Согласитесь с запросом и увидите, что ваша картинка уже не отображается как изображение. Если переименовать как прежде, все снова восстановится. Если у вас не видны расширения, необходимо активировать эту функцию в проводнике, во вкладке «вид».
Для Windows бат – это файл с инструкциями на определенные действия, которые заложены в самом бат файле. Пустой файл формата бат запустится, но никаких действий выполнятся, не будет. Батник это набор инструкций для консоли Windows.
Как создать бат файл для запуска программы?
Чтобы создать батник, необходимо запустить редактор текста, затем сохранить файл с конечным именем bat. При отсутствии в вашем редакторе нет функции сохранения с таким расширением, то его необходимо прописать самостоятельно. При запуске такого файла у нас откроется консоль и если никаких команд не будет, то она тут же закроется.
Теперь давайте зададим команду для запуска программы. Для этого необходимо открыть наш созданный батник в блокноте или другом редакторе и прописать команду.
На примере запустим браузер. Необходимо сначала вписать команду Start и после пробела написать Opera.
Выглядеть это должно так:
Start Opera
Такая сработает для программ известных системе, но если произвести запуск софта, который не известен системе, потребуется прописать весь путь к программе. Например если у вас ftp установлен в папку Program Files то для того чтобы его запустить нужно ввести команду
start filezilla
А если ftp клиент установлен в другую папку нужно будет прописать весь путь.
Область применения батников довольно широка. В конфигурацию можно прописывать самые разные команды. Узнать их можно в Интернете если вас интересует более подробная информация по командам пишите в комментариях я вам постараюсь ответить. Аналогичным образом работает VBS. Это тоже самое, только выполнение команд идет не через консоль, и команды несколько отличаются.
Эта технология поможет при выполнении разного рода задач, причем в автоматическом режиме. Некоторые пользователи даже пишут таким образом вирусы. Чтобы невозможно было изменить конфигурацию файла с помощью редактора текста, необходимо конвертировать файл bat в exe. Это поможет сделать различный вспомогательный софт, который вы можете найти в сети. Например, для преобразования bat в exe поможет программа Bat to exe converter.
Функция бат очень полезна и порой необходима. С помощью нее можно писать целые программы узкого спектра действия. Область применения зависит только от знаний команд и умения их совмещать. Поэтому пользуйтесь и расширяйте свои навыки и умение пользоваться компьютером на уровне Супер пользователя.
Люди, которым знаком термин батник, знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать BAT файлы и познакомлю вас с распространенными ошибками, которые обычно возникают при их написании.
Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat
, выбрав опцию Сохранить как... и написав в поле Имя файла что-нибудь оканчивающееся на .bat
, например test.bat
.
Тип файла указываете как на скриншоте ниже - Все файлы
. Сохраняете и получаете BAT файл.
Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.
Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах? . В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки. И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему - почему не верен и почему некоторые будут.
На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск. Одной из таких программ является Firefox:
start firefoxЕсли после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:
start firefox C:\Program Files\Mozilla Firefox\firefox.exeОбозреватель откроется, чтобы не было написано после start firefox . Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка
start filezillaработать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь:
start D:\FileZilla\FileZilla.exeДлинныe имена в bat-файлах
Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы - использование короткого имени.
start C:\Program Files\Sound Club\scw.exeВ примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа ~ . Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:
Program Files - Progra~1 Sound Club - SoundC~1 start C:\Progra~1 \SoundC~1 \scw.exe
Если рядом будут присутствовать две папки, например Sound Club и Sound Clown , то следуя правилам, в примере выше надо будет указать SoundC~2 , так как в этом случае Sound Club окажется вторым именем (имена считаются в алфавитном порядке).
Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например:
Mozilla Firefox Mozilla Thunderbird Mozilla Sunbird
Короткими именами для них будут
Mozill~1 Mozill~2 Mozill~3
А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами - не наш способ.
Пробелы и кавычки в bat-файлах
Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее:
start "C:\Program Files\Sound Club\scw.exe"Так команда не сработает, поскольку если посмотреть справку по ней (start /? ), то в справке вы увидите следующее:
START ["заголовок"] [команда/программа] [параметры]Как видите, первым параметром идёт заголовок окна и он как раз в кавычках. Этот параметр необязательный, но его всё же советуют указывать (), чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так:
start "" "C:\Program Files\Sound Club\scw.exe"Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:
start C:\"Program Files"\"Sound Club"\scw.exeОднако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd . Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу (start ):
%SystemDrive% cd \Program Files\Sound Club\ start scw.exeЯ думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ - вандальный, а второй смотрите ниже.
start firefox start jetaudio rem start defragglerВ данном случае отключен запуск установленной в системе программы Defraggler.exe. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit.
start firefox start jetaudio rem start defraggler exitЗапуск приложений из bat-файла
В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно - что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения? и не нажимать лишние кнопки.
Выше было изложено несколько способов запуска приложений при помощи BAT файла. Самый первый - это короткая команда на запуск установленной в системе программы.
start firefoxЭто не всегда работает. Поэтому такой прием можно вполне применять на какой-то конкретной системе, но в качестве универсального решения он не подходит. Если есть цель заставить работать BAT файл везде и всегда, нужно пользоваться полными путями:
start C:\"Program Files"\"Mozilla Firefox"\firefox.exeТакже я отметил, что в BAT файле обязательно должна присутствовать команда на завершение:
start C:\"Program Files"\"Mozilla Firefox"\firefox.exe exitЗапуск программ в bat-файлах с параметрами (ключами)
Программу можно не просто запускать, а давать ей дополнительные команды при запуске. Например, скомандовать запускаться свернутой:
start /min D:\FileZilla\FileZilla.exe exitСкомандовать в данном случае - значит указать ключ. Ключ указывается через слэш после основной команды (команда /ключ ). Основной командой в данном случае является start . Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start , а не к программам, которые эта команда запускает.
Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки (/? или /help ). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте + R , вводите cmd , далее Enter ) и набираете в консоли следующее:
start /?Консоль выведет на экран перечень допустимых ключей c комментариями для команды start .
Обратите внимание на ключ /wait . В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды - на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait :
Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой . В нужном месте BAT файла пишете следующую команду (число - количество секунд):
start Sleep.exe 15С помощью ключей можно делать многое. Есть возможность устанавливать приложения . Для этого используется несколько ключей в зависимости от типа инсталятора, применяющегося для установки программы на компьютер:
/S /s /q /silent и ряд других
В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной (домашней) версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор InstallShield , вы поймете, что это утка, так как этот инсталятор сам по себе поддерживает ключ тихой установки /S . А значит все продукты, выполненные на его базе - тоже. И Avast не исключение. Просто создаете в папке с Avast"ом BAT файл с содержанием
start avast.exe /S exitзапускаете его и программа устанавливается на компьютер практически без вашего участия. Таким образом можно написать целый список программ для тихой установки и сэкономить время, например, на переустановке системы. В статье можно получить более подробную информацию по ключам.
Есть и другие возможности по управлению программами при помощи BAT файлов. Можно запустить программу, приказав ей открыть файл при запуске. Я пользуюсь этим способом при разработке сайтов. Очень удобно, когда весь твой инструментарий открывает нужные документы и папки нажатием всего одной кнопки:
rem соединение с ftp-сервером start /min D:\FileZilla\FileZilla.exe "ftp://логин:пароль@сервер" rem открытие index.php в Firefox start C:\"program files"\"mozilla firefox"\firefox.exe "http://localhost/папка_сайта/index.php" rem открытие start.html в текстовом редакторе start /min C:\"Program Files"\текстовой_редактор.exe "E:\сервер\папка_сайта\index.html" rem открытие папки с файлами сайта start /min E:\сервер\папка_с_сайтом rem выход из консоли exitОтмечу, что все вышеописанные приемы можно применять в различных комбинациях и сочетаниях.
start /min /wait program.exe /m /S start C:\Directory\program2.exe "C:\Files\file.odt" exitНо важно помнить: всё, что касается выполнения запускаемой в батнике программы, пишется с ней в одной строке.
start C:\"program files"\"mozilla firefox"\firefox.exe "http://localhost/папка_сайта/index.php"В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe - . BAT файл - это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe"шник, оформив его любой иконкой на ваш выбор.
Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter