Загрузить PDF
Загрузить PDF
Из данной статьи вы узнаете, как написать и сохранить простейший пакетный файл (батник) на компьютере под управлением Windows. Пакетный файл содержит ряд команд DOS (операционная система) и обычно используется для автоматизации часто выполняемых задач, таких как перемещение файлов. Чтобы создать батник, сложное программное обеспечение не нужно — вам понадобится только текстовый редактор Блокнот.
-
1
Откройте Блокнот. В Блокноте можно написать программу в виде текстового файла, а затем сохранить его как пакетный файл. Чтобы открыть Блокнот, откройте меню «Пуск»
, введите блокнот и нажмите на синий значок «Блокнот» в верхней части меню.
Реклама
- Блокнот используется для преобразования текстовых файлов в пакетные, но код пакетного файла можно написать в любом текстовом редакторе.
- ECHO: выводит текст на экран;
- @ECHO OFF: скрывает отображаемый текст;
- START: запускает файл с приложением;
- REM: добавляет строку с комментариями;
- MKDIR/RMDIR: создает и удаляет каталоги;
- DEL: удаляет файлы;
- COPY: копирует файлы;
- XCOPY: копирует файлы с дополнительными параметрами;
- FOR/IN/DO: определяет файлы;
- TITLE: редактирует заголовок окна.
[1]
[2]
MKDIR c:каталог1 MKDIR c:каталог2
@ECHO OFF XCOPY c:original c:backupfolder /m /e /y
- Эта программа скопирует файлы из папки «original» в папку «backupfolder». Эти папки можно заменить другими (с соответствующими путями к папкам). /m указывает, что будут скопированы только измененные файлы; /e указывает, что будут скопированы все подпапки (которые есть в указанной папке); /y выводит на экран запрос на перезапись файла.
@ECHO OFF cd c:source REM Это исходная папка с файлами FOR %%f IN (*.doc *.txt) DO XCOPY c:source"%%f" c:text /m /y REM Все файлы с расширением .doc или .txt REM будут скопированы из c:source в c:text REM %%f это переменная FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:source"%%f" c:images /m /y REM Все файлы с расширением .jpg, .png, .bmp REM будут скопированы из c:source в c:images
-
1
Закончите вводить программу пакетного файла. Когда вы завершите вводить и редактировать программу пакетного файла, сохраните его в качестве исполняемого файла.
-
2
Щелкните по Файл. Эта опция находится в верхнем левом углу окна Блокнота. Откроется выпадающее меню.
-
3
Нажмите Сохранить как. Эта опция находится в выпадающем меню «Файл». Откроется окно «Сохранить как».
-
4
Введите имя и расширение .bat. В строке «Имя файла» введите имя, а затем введите .bat.
- Например, если пакетный файл для резервного копирования будет называться «backup», введите backup.bat.
-
5
Откройте выпадающее меню «Тип файла». Вы найдете его в нижней части окна «Сохранить как».
-
6
Щелкните по Все файлы. Эта опция находится в выпадающем меню. Так вы сможете сохранить файл с указанным расширением (в данном случае с расширением .bat).
-
7
Укажите папку, в которой будет храниться пакетный файл. Для этого щелкните по нужной папке (например, по «Рабочий стол») в левой части окна.
-
8
Нажмите Сохранить. Эта кнопка находится в нижнем правом углу окна «Сохранить как». Окно закроется.
-
9
Закройте Блокнот. Файл будет сохранен как пакетный файл в указанной папке.
-
10
Измените программу пакетного файла. Для этого щелкните по нему правой кнопкой мыши и в меню выберите «Изменить». Пакетный файл откроется в Блокноте; внесите необходимые изменения, а затем сохранить файл, нажав Ctrl+S.
- Изменения вступят в силу, как только вы запустите пакетный файл.
Реклама
Советы
- Если имя файла или каталога содержит пробелы, заключите такое имя в кавычки (например, start "C:Documents and Settings").
- Чтобы отредактировать пакетный файл, можно использовать сторонние редакторы, такие как Notepad++, но по большому счету это пустая затея, если вы собираетесь создавать простейшие пакетные файлы.
- Чтобы запустить некоторые команды (например, ipconfig), потребуются административные привилегии. В этом случае щелкните правой кнопкой мыши по файлу и в меню выберите «Запуск от имени администратора» (если вы вошли в систему в качестве администратора).
Реклама
Предупреждения
- В зависимости от используемых команд пакетные файлы могут быть опасными. Убедитесь, что команды пакетного файла не приведут к нежелательным последствиям (например, к удалению файлов или сбою компьютера).
Реклама
Об этой статье
Эту страницу просматривали 136 583 раза.
Была ли эта статья полезной?
В данной статейки мы рассмотрим такую полезную вещь как «батник». Давайте сначала дадим определение, что такое bat файл. Пакетные или batch файлы — это простые текстовые файлы, содержащие наборы команд (инструкцию) интерпретатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Создавать и редактировать такие файлы можно при помощи обычного блокнота или любого другого текстового редактора.
Теперь Вы спросите, зачем нужно уметь писать такие бат файлы? И зачем они нужны? Попытаюсь объяснить.
Во-первых, они используются для облегчения работы, т.е. например Вам нужно постоянно выполнять какую-нибудь операцию каждый день (например, создавать архив тех или иных документов), с помощью батника это можно автоматизировать, и Вы в этом уже не будете принимать участия.
Во-вторых, эти пакетные файлы очень мощные (если конечно уметь их писать), т.е. Вы можете даже написать неплохую программу (я имею в виду по функционалу). Лично мне они очень помогают в работе, и о некоторых вещах я уже просто забыл, когда это делал я в ручную.
Теперь перейдем непосредственно к основам этих батников. Как же они создаются, Вам нужно просто создать простой текстовый документ открыть его и сразу на вкладке «Файл->сохранить как», вписать вместо расширения «Текстовый документ.txt», например «Текстовый документ.bat» и сохранить, вот и получится у нас батник с расширением .bat, но он пока ничего не делает.
Для начала я приведу пример батника, который я использую у себя на работе для архивации документов.
"C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.doc "C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.xls "C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.txt
Теперь немного расскажу, что делает этот батник. Запускается WinRar, потом идут команды винрара:
- a — это добавить в архив;
- -r — обрабатывать вложенные папки;
- -dh — открывать совместно используемые файлы;
- -ed — не добавлять пустые папки;
- YYYY-mm-dd — добавляем к имени архива текущую дату (формат даты);
- E:arhaccounts — путь, где будет лежать конечный архив;
- d:accounts*.doc — путь и маска файлов, какие нужно заархивировать.
В данном случае мы архивируем все документы Word, Excel и текстовые файлы, архивировать остальные нам не требуется. У нас архивация идет на другой диск, и мы еще копируем полученный архив на другой компьютер, для того чтобы архивы хранились и в другом кабинете. Копирование идет по сети соответственно компьютер, на который копируется архив, должен быть включен. Для этого можно использовать такую команду:
copy E:arhaccounts*.rar \namecomparhiv
Теперь рассмотрим основные команды, которые Вы можете использовать.
Если Вам нужно удалить файл пропишите следующие:
Del d:filetest.doc
Для того чтобы удалить весь каталог пропишите:
rd d:file
Вдруг Вам нужно удалять каждый раз все из какого-нибудь каталога, то используйте вот что:
echo Y| del d:file
где,
- del d:file — это как раз и есть удаление всех файлов;
- echo Y| — команда подтверждает удаление т.к. если не прописать эту команду, то Вы увидите сообщение о подтверждение удаления – «Продолжить [Y(да)/N(нет)]», и Вам нужно будет каждый раз отвечать на этот вопрос.
Сейчас давайте рассмотрим пример посложней, в котором уже выполняется условие:
@echo off "C:Program FilesWinRARwinrar.exe" x -O+ -IBCK d:testtest.rar d:test IF not EXIST d:test123.rar GOTO 1 IF EXIST d:test123.rar GOTO 2 :2 "C:Program FilesWinRARwinrar.exe" x -O+ -IBCK d:test123.rar c: del d:test123.rar :1 del d:testtest.rar end
Теперь объясняю, допустим, Вам нужно разархивировать архив test.rar, в котором будет много файлов, но если там окажется файл 123.rar его нужно будет разархивировать в корень диска C, а остальные файлы чтобы остались в том же каталоге не тронутыми.
По порядку, команда @echo off нужна, для того чтобы на экране у нас ничего не отражалось (в принципе, если не нужно можете не писать эту строку). Далее у нас запускается винрар и распаковывает архив test.rar в папку test. Затем идет условие, если в папке test (после распаковки test.rar) у нас не окажется файла 123.rar, то у нас просто выполнение батника переходит к строке :1 и потом просто удаляется файл test.rar за не надобностью т.к. все что нам нужно мы уже распаковали. Но если там оказывается файл 123.rar, то выполнение батника переходит к строке :2, после которой уже идет распаковка файла 123.rar в корень диска C. Другими словами у нас выполняется условие, если есть файл то делать это, если нет файла, делать вот это. Допустим, если не прописать условие в данном примере, то у нас батник выдаст ошибку, тогда когда у нас не окажется файла 123.rar в данной папке.
А сейчас рассмотрим такой пример, допустим, Вам нужно каждый раз перемещать из каталога расположенного на диске D файлы на флешку. Вы каждый раз должны будете заходить мой компьютер диск D, выбирать нужную папку, выделять все файлы из нее и вырезать, а потом только заходить на флешку и вставлять. С помощью батника это делается в один клик (с одним условием, что флешка каждый раз будет, например диском G или тем какой у Вас). Вот пример такого батника:
move "D:catalog*.doc" G:catalognaflehe
И все файлы с расширением doc, которые находятся в каталоге D:catalog будут перемещаться на флешку. Теперь хочу сказать, что в батниках можно использовать сценарии (скрипты) при помощи Windows Scripting Host и если нужно, например чтобы выводилось сообщение, после того как файлы скопированы (предыдущий пример) вставьте вот это:
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%mes.js echo WSHShell.Popup("Файлы Скопированы"); >> %temp%mes.js start %temp%mes.js deltree /y %temp%mes.js
На самом деле про написание батников можно разговаривать много и в одну статью это, конечно же, не уместить, здесь я показал всего лишь принципы, которые используются при написании bat файлов, так сказать основу. Если Вы хотите узнать больше команд для написания батников, Вы можете легко посмотреть их, набрав в командной строке (Пуск — Выполнить – cmd) команду help, но там, конечно же, не все команды, что можно использовать в батниках. Удачи в написание BAT файлов (батников).
Продолжение темы в статье — BAT файлы – Примеры батников (Часть 2)
Люди, которым знаком термин батник
, знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать BAT файлы и познакомлю вас с распространенными ошибками, которые обычно возникают при их написании.
Создать BAT файл очень просто. Достаточно открыть блокнот и сохранить пустой лист с расширением .bat, выбрав опцию Сохранить как…
и написав в поле Имя файла
что-нибудь оканчивающееся на .bat, например test.bat.
Тип файла указываете как на скриншоте ниже — Все файлы. Сохраняете и получаете BAT файл.
Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.
Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах?
. В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ: Заключи путь в кавычки
. И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему
— почему не верен
и почему некоторые будут
.
На Windows (как, впрочем, и на UNIX) установленные в системе программы соответствующим образом регистрируются системой. Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить
панели Пуск
. Одной из таких программ является Firefox:
start firefox
Если после этой команды писать путь к исполняемому файлу, то происходит следующее: запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее:
start firefox C:Program FilesMozilla Firefoxfirefox.exe
Обозреватель откроется, чтобы не было написано после start firefox
. Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp-клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчка
start filezilla
работать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь:
start D:FileZillaFileZilla.exe
Длинныe имена в bat-файлах
Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы — использование короткого имени.
start C:Program FilesSound Clubscw.exe
В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие: в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа ~. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее:
Program Files - Progra~1
Sound Club - SoundC~1
start C:Progra~1SoundC~1scw.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 FilesSound Clubscw.exe"
Так команда не сработает, поскольку если посмотреть справку по ней (start /?), то в справке вы увидите следующее:
START ["заголовок"] [/D путь] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE узел NUMA] [/AFFINITY маска сходства] [/WAIT] [/B]
[команда/программа] [параметры]
Как видите, первым параметром идёт заголовок окна и он как раз в кавычках. Этот параметр необязательный, но его всё же советуют указывать (например, тут), чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так:
start "" "C:Program FilesSound Clubscw.exe"
Также сработает и вариант с заключением в кавычки всех имён с пробелами по отдельности:
start C:"Program Files""Sound Club"scw.exe
Однако, в ряде случаев не работает ничего из вышеописанного. В таких случаях я могу посоветовать использовать команду cd. Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу (start):
%SystemDrive%
cd Program FilesSound 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:FileZillaFileZilla.exe
exit
Скомандовать в данном случае — значит указать ключ. Ключ указывается через слэш после основной команды (команда /ключ). Основной командой в данном случае является start. Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start, а не к программам, которые эта команда запускает.
Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки (/? или /help). Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль (Жмёте + R, вводите cmd, далее Enter) и набираете в консоли следующее:
start /?
Консоль выведет на экран перечень допустимых ключей c комментариями для команды start.
Обратите внимание на ключ /wait. В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды — на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ /wait:
Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте 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:FileZillaFileZilla.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:Directoryprogram2.exe "C:Filesfile.odt"
exit
Но важно помнить: всё, что касается выполнения запускаемой в батнике программы, пишется с ней в одной строке.
start C:"program files""mozilla firefox"firefox.exe "http://localhost/папка_сайта/index.php"
В качестве эпилога предложу для ознакомления конвертер BAT файлов в приложения формата .exe — Bat_To_Exe_Converter. BAT файл — это не всегда эстетично, а с помощью конвертера можно запаковать батник в exe’шник, оформив его любой иконкой на ваш выбор.
Наткнулся ещё на один конвертер BAT в EXE, можете рассмотреть в качестве альтернативы предыдущей программе: Advanced Bat To Exe Converter
На этом всё.
Если материалы сайта оказались для вас полезными, можете поддержать дальнейшее развитие ресурса, оказав ему (и мне ) моральную и материальную поддержку.
Дисклеймер
Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.
Что такое батники и с чем их едят
Пакетный файл или в простонародье батник — это файл, который запускает командную сроку или сокращенно cmd, которая построчно интерпретирует команды, записанные в нем. Подробнее смотрите на https://ru.wikipedia.org/wiki/Пакетный_файл.
Первая программа и основные команды
Чтобы сделать батник, нужно сначала создать текстовый файл с именем test и изменить расширение c .txt на .bat. О том, как можно это сделать, читайте здесь: https://remontka.pro/file-extensions. У вас должен появиться файл с такой иконкой:
Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем «Открыть». Должен открыться блокнот, пишем:
@echo off
echo Hello world!
pause
В 1-ой сроке («@echo off») префикс ‘@ ‘ означает, что команда не будет выведена на экран(попробуйте его убрать ), сама же команда (echo) выводит текст следующий за ней(см. строку 2), НО, если подать строку «off», все последующие команды будут действовать так, как будто перед ними стоит префикс ‘@’, «echo on», соответственно, выключает этот режим. Чтобы вывести символ «%», его нужно дублировать, потом поймете почему :-), для вывода пустой строки поставьте «.» после «echo»
В 3-ей строке команда выводит строку «press any key to continue . . .» (если у вас русский язык — «Для продолжения нажмите любую клавишу . . .») и останавливает программу до нажатия любой клавиши.
Наводим красоту
Команда «rem»
не делает ничего и служит комментарием к коду
rem Это самая лучшая прога в мире!!!!!
Код включает русские символы и другие из ascii(например: «╬▓☼», можно скопировать с http://pascalguru.ru/psevdograf.html), иначе ascii символы превратятся в кракозябры:
chcp 65001
Следующий код код работает, как команда «pause», но ничего не выводит на экран и не реагирует на нажатие клавиш(я потом объясню, как это работает).
:m
goto m
А этот — меняет заголовок окна на «name»
title name
Эта команда меняет цвет фона и текста, вместо a и b можно поставить любые шестнадцатеричные цифры(команда не сработает если a = b) см. таблицу ниже. Запись c одной буквой «а» аналогично записи «0a»
color ab
Эта — досрочно завершает программу
exit
Переменные
Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C++ это именованный кусочек кода, имя которого заменяется на этот кусочек кода)
set a=Hello world
Если после «set» добавить флаг «/a» то:
-
Переменной задастся значение выражения, а не его текст, например:
set a=2+2 > 2+2 set /a a=2+2 > 4
-
Переменной можно присвоить ТОЛЬКО числовое значение
Чтобы обратиться к переменной, нужно окружить ее символами «%» (так %name%), пример кода:
set /a a=%b%+%b%
echo %a%
Подробнее о переменных
Если добавить флаг «/p», то выводиться значение после символа «=», а переменной задается введенное значение(запустите этот код:)
@echo off
set /p a=Enter str
echo %a%
pause
следующий код вырезает строку от символа номер «a» до символа номер «b» НЕ включительно(счет идет с нуля, отрицательные числа — счет с конца от единицы). Если аргумент один, то он присваивается числу «b», а «a» = 0
%str:~a,b%
следующий заменяет подстроки «a» в строке на строки «b»:
%str:a=b%
Циклы и условия
Цикл можно создать с помощью команды «for», синтаксис следующий:
for %%i in (a b c) do (
cmd
)
или такой
for %%i in (a b c) do cmd
(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке
Если добавить флаг «/l», то переменная в первый раз будет равна «a». К ней каждый раз будет прибавляться «b», пока она не станет больше «c»(тут размер ДОЛЖЕН равняться 3)
запустите этот код, тут все наглядно
@echo off
chcp 65001
echo Начало
for /l %%i in (1 1 10) do echo %%i
echo Конец
pause
Команда if выполняет код, если условие верно (или если поставить not после if, когда НЕ верно), вот операторы сравнения:
P.S. строки нужно брать в кавычки «%str%»==»Hello»
equ(==) |
= |
neq |
≠ |
lss |
< |
leq |
≤ |
gtr |
> |
geq |
≥ |
пример кода:
@echo off
set /p a=Enter number
if a gtr 0 echo positive else
if a equ 0 echo 0 else echo negative
pause
в 3-ей строке, если «a» > 0 выводиться «положительный»(на английском ), если равен — 0,в 4-ой если меньше — «отрицательный»
символ «» означает, что команда продолжается на следующей строке
Метки
Создадите файл start.bat в той же папке, где и test.bat, напишите в нем:
test.bat 2 2
Мы запустили батник, НО подали в него аргументы 2 и 2. Чтобы к ним обратиться, нужно написать %n, где «n» — номер аргумента, считая от одного(не от нуля), вот код, считающий сумму первого и второго аргумента (их может быть от нуля до 9-и):
@echo off
set /a res=%1+%2
echo res
pause
Метка — это именованное место в коде, она создается с помощью команды «:name»
А этот переходит на метку :m и продолжает выполнение, начиная с нее
rem куча кода
:m
rem куча кода
goto m
rem куча кода
И в завершение статьи, хочу сказать о команде call. Она превращает в последующей команде «%%» в «%», а переменные — на их значения. Пример использования:
call echo %%str:~%a%,%b%%%
Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.
BAT-файл — это последовательность команд для интерпретатора командной строки в виде текстового файла с расширением .bat или .cmd. Основное предназначение пакетных файлов — автоматизация рутинных действий пользователя компьютера.
Название BAT появилось от английского batch — пакетная обработка. В истории продуктов Microsoft пакетные файлы существовали с первой версии MS-DOS в 80-х годах и позже успешно интегрировались в Microsoft Windows. В MS-DOS командным интерпретатором выступает COMMAND.COM, а начиная с Windows NT и до сих пор используется CMD.EXE.
Интерпретатор COMMAND.COM принимает файлы с расширением .BAT. Расширение .CMD создано для интерпретатора CMD.EXE с целью различать файлы для «старого» и «нового» интерпретаторов. CMD.EXE корректно обрабатывает оба расширения.
Интерпретатор CMD.EXE является частью современных операционных систем семейства Microsoft Windows, несмотря на отсутствие развития с начала 2000-х.
Основы взаимодействия с bat-файлами
Пакетный файл bat — это текстовый документ со специальным расширением. Для создания своего первого bat-файла достаточно «Блокнота», который доступен в операционной системе. Для повышения удобства написания и поддержки bat-файлов рекомендуем использовать Notepad++ или любой другой текстовый редактор с подсветкой синтаксиса.
Создание bat-файлов
Для создания пакетных файлов необходимо открыть текстовый редактор и в меню Файл выбрать Сохранить как….
В появившемся окне выбрать Тип файла → Все файлы и задать имя с расширением .bat, как продемонстрировано на изображении выше. По умолчанию Windows скрывает расширения файлов, и пакетный файл можно отличить от текстового по пиктограмме окна с шестеренками.
Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.
Запуск bat-файлов
Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора.
Исполняемые bat-файлы не могут запрашивать права администратора, если командам нужны расширенные права.
Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл.
Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш Win + R, вписать cmd и нажать ОК.
Для запуска пакетного файла его необходимо перенести мышкой в открывшееся окно и нажать Enter. Команды bat-файла будут выполнены, а его вывод вы увидите на экране.
Вне зависимости от способа запуска откроется окно, которое может привлекать внимание и раздражать. Для запуска в «скрытом» режиме необходимо использовать другой скриптовой язык Microsoft Windows — VBScript.
По аналогии создаем файл с расширением .vbs и заполняем его следующими командами:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "С:путьдовашегоскрипта.bat" & Chr(34), 0
Set WshShell = Nothing
Для скрытого запуска следует запускать созданный файл, а не bat-файл. Скрытый запуск bat-файла актуален для автоматизации действий по расписанию, например, создание резервной копии.
Запуск по расписанию
За выполнение действий по расписанию отвечает Планировщик заданий. Открываем меню Выполнить и запускаем программу taskschd.msc.
Выбираем пункт Создать простую задач и заполняем параметры задания:
- имя для простой идентификации,
- периодичность и время запуска,
- действие — Запустить программу,
- программа или сценарий — путь до вашего .bat-файла или .vbs-файла, который запускает .bat-файл скрытно.
Обратите внимание, что планировщик позволяет не только выполнять действие по времени, но и при наступлении события — например, при загрузке компьютера. Такой подход является альтернативой автозагрузке.
В случае разработки собственного bat-файла следует ознакомиться с основами командного интерпретатора.
Команды и синтаксис пакетных файлов
Командный интерпретатор выполняет команды из файла последовательно — строка за строкой. Исключение составляет только оператор GOTO, который «отправляет» к указанной строке. Командный интерпретатор выполняет два вида команд: встроенные команды и внешние исполняемые файлы.
Внешние исполняемые файлы — это любой исполняемый файл, то есть с расширением EXE, CMD или BAT, который доступен в операционной системе. Например, «Блокнот» — это исполняемый файл notepad.exe. Следующая команда приведет к запуску этого приложения с открытым файлом C:1.txt:
notepad.exe C:1.txt
Аргументом может быть не только путь, но и ключ — специальный аргумент, который начинается с символа слэш (/). У каждой программы свой «реестр» ключей и их значений.
Обратите внимание, что не все внешние команды «понимают» аргументы, переданные из интерпретатора командной строки. Например, исполняемый файл приложения калькулятор, calc.exe, игнорирует все аргументы командной строки. Внешним исполняемым файлом может быть в том числе другой bat-файл.
Встроенные команды — это команды, которые являются частью интерпретатора командной строки. Полный список команд доступен по команде HELP. Данные команды не имеют отдельного исполняемого файла.
Иногда в имени файла или каталога встречаются пробелы. Наиболее очевидный пример — каталог Program Files на диске C. В этом случае помогают кавычки. Их можно расставить различными способами. Например:
cd "C:Program Files123"
cd C:”Program Files”123
Операционная система Windows запрещает использование множества специальных символов в именах файлов, в том числе кавычки, поэтому проблем с указанием файлов не возникнет.
Оставлять комментарии при разработке — хороший тон. Так можно объяснить выполняемые действия и потенциальные ошибки. В пакетных файлах можно оставлять комментарии несколькими способами.
Официальный способ — команда rem или два двоеточия.
rem Это первый комментарий
:: Это тоже комментарий
Перечисленные команды позволяют оставлять однострочные комментарии. Если хочется оставить развернутый многострочный комментарий, то прибегают к хитрости с командной GOTO.
goto start
===
Здесь можно оставить большой комментарий,
лицензию или даже ASCII-арт
===
:start
В конце комментария задаем имя метки, а в начале комментария выполняем команду GOTO c именем метки. Этот способ требует внимания, так как для каждого комментария должна быть своя метка, иначе выполнение bat-файла может отличаться от ожидания разработчика.
Совместимость с MS-DOS
В старых ОС, таких как MS-DOS, было ограничение на отображение имени файлов. На экран выводилось восемь символов имени, точка и три символа расширения. Если имя файла превышало по длине восемь символов, то имя файла отображалось по следующей схеме:
<первые шесть символов имени>~<порядковый номер>
Например, каталог Program Files выглядит следующим образом:
Progra~1
В современных операционных системах такое отображение не применяется, но CMD.EXE до сих пор поддерживает такие запросы к файлам и каталогам.
Используйте bat-файлы в работе с выделенным сервером
Выберите подходящий из более 100 готовых конфигураций.
Подобрать сервер
Примеры bat-файлов
Рассмотрим несколько примеров bat-файлов. Начнем с базовых команд.
Обновление IP-адреса
Представим простой пример: необходимо обновить аренду IP-адресов на всех сетевых интерфейсах. В командной строке это делается одной командой:
ipconfig /renew
Данная команда генерирует много текстового вывода, который может испугать неподготовленного пользователя. Сама команда также может быть непривлекательной. Поэтому отключим отображение команды и перенаправим вывод выполнения в «никуда». Вместо слова NUL может быть любое имя или путь. Тогда вывод будет перенаправлен в указанный файл.
rem Отключаем отображение команд. Символ @ отключает отображение текущей команды
@echo off
rem Переводим вывод выполнения в устройство NUL, вывод исчезнет
ipconfig /renew > NUL
При запуске такого скрипта появляется черное окно, которое быстро исчезает. Можно оставить простые и понятные пользователю сообщения и не дать окну закрыться.
@echo off
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.
rem Эта команда остановит выполнение до тех пор, пока пользователь не нажмет любую клавишу
pause
Скорее всего данный скрипт выведет набор непонятных символов вместо сообщения. Дело в том, что в русскоязычных ОС Windows по умолчанию в CMD.EXE используется кодировка CP866. Блокнот сохраняет в CP1251 (Windows-1251), а Notepad++ — в UTF-8. Для решения проблемы необходимо сменить кодировку интерпретатора командой chcp или сохранить bat-файл в кодировке интерпретатора.
rem Смена кодировки на Windows-1251
chcp 1251 > NUL
rem Смена кодировки на UTF-8
chcp 65001 > NUL
Я сохранил файл в кодировке UTF-8 и итоговый скрипт получился таким:
@echo off
chcp 65001 > NUL
echo Выполняется настройка, пожалуйста, подождите...
ipconfig /renew > NUL
echo Все хорошо.
pause
Создание резервной копии каталога
Перейдем к более жизненной ситуации — создание резервной копии (backup) каталога. Предположим, что каждый архив должен иметь в названии дату создания копии. Создадим каталог, имя которого — текущая дата. Текущая дата хранится в переменной DATE. Для обращения к переменным название переменной помещается между знаками процента.
mkdir %DATE%
cd %DATE%
Копирование файлов в текущий каталог производится командой COPY.
rem файлы 1.txt и 2.txt будут скопированы в текущую папку
COPY C:1.txt C:2.txt .
rem файл 3.txt будет сохранен в текущую папку как example.txt
COPY C:1.txt .example.txt
Возможно, в резервную копию необходимо дополнить служебную информацию — например, список файлов в корне копии и имя компьютера.
rem Имя компьютера записывается в файл computer.txt
hostname > computer.txt
rem Список файлов в текущем каталоге записывается в files.txt
dir . > files.txt
Обычно резервные копии хранят в zip- или rar-архивах. Из командной строки отлично управляется архиватор 7z.
cd ..
7z -tzip a backup.zip %DATE%
Переименование файлов
Переименование файлов в Windows производится командой RENAME. Однако эта команда имеет свои особенности.
Во-первых, переименование возможно только в рамках одного диска и одного каталога. Между каталогами одного диска допустимо перемещение, а между разными дисками — только копирование.
rename abc.txt cba.txt
Во-вторых, возможно переименование по маске. Допустим, есть список фотографий photo000.jpeg, photo001.jpeg и так далее. Нужно сменить префикс с photo на mobile.
rename photo* mobile*
Если в текущем каталоге есть другие файлы с префиксом photo, а переименовать надо только изображения с расширением jpeg, то команда модифицируется:
rename photo*.jpeg mobile*.jpeg
Удаление файлов
Программы и пользователи оставляют следы работы в виде файлов, которые не удаляются автоматически. К счастью, процесс очистки поддается автоматизации.
Предположим, что в процессе работы пользователя генерируется большое количество файлов с расширением jpeg, которые нужно удалять. На помощь приходит оператор цикла FOR.
rem Ищем все файлы с расширением jpeg в каталоге work
rem Ключ /r включает в поиск все подкаталоги в каталоге work
for /r work %%file in (*.jpeg) do (
rem Выводим имя файла
echo %%file
delete %%i
)
Заключение
Командный интерпретатор CMD.EXE существует долгое время, но, даже несмотря на отсутствия развития, остается востребованным инструментом для автоматизации рутинных действий в операционной системе Microsoft Windows.
BAT-файлы (Batchfiles) — это пакетные файлы в ОС MS-DOS, OS/2, Windows. Чаще всего они используются для
автоматизации задач.
Внимание!
Некоторые команды могут нанести вред вашей системе!
MIT License
Copyright (c) 2022 Андрей Кожев
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Графический интерфейс, предложенный Apple, оказался революционным во всех отношениях: он сделал компьютер более дружественным по отношению к конечному пользователю, одновременно подстегнув производителей аппаратного/программного обеспечения. Но юзеры со стажем помнят времена, когда на ПК безраздельно властвовала ОС MS DOS, использовавшая текстовый режим для ввода всех команд и запуска программ. Командная строка и сегодня пользуется популярностью среди сторонников Linux, но её основной недостаток заключается в сложности набора длинных команд – при ошибке всё приходится повторять заново.
И выход был найден – самые распространённые сценарии записывались в текстовый файл специального формата с расширением BAT, который затем интерпретировался операционной системой, а вернее, её компонентой, известной как CMD (интерпретатор командных строк). Оказывается, GUI-интерфейс оказался не таким всемогущим, и ряд задач даже в Windows последних поколений можно автоматизировать только с помощью BAT-файлов.
Что собой представляет BAT-файл
С точки зрения пользователя компьютера это текстовый файл с соответствующим расширением, но для операционной системы такие файлы особенные – они состоят из ряда команд, которые после запуска интерпретируются и выполняются по определённым правилам. Таким образом, ответ на вопрос, что такое батник для компьютера под управлением ОС Windows, может звучать следующим образом: это набор команд, записанный в текстовом формате, позволяющий сэкономить время на их наборе каждый раз, когда возникнет необходимость. Сленговое название таких файлов – батник, их также называют пакетными файлами.
С помощью таких батников можно автоматизировать целые классы задач:
- осуществлять управление файловой системой компьютера (удалять, создавать, перемещать файлы, каталоги, подкаталоги);
- выполнять последовательность команд с определёнными параметрами, которые могут быть контекстно-зависимыми;
- осуществлять пакетный запуск программ/утилит.
Как создать файл с расширением 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 "C:Program FilesSoundClubscw.exe"
Но это будет воспринято интерпретатором неправильно, поскольку в синтаксисе команды START на первом месте – необязательный параметр [«заголовок»], и только затем следует путь. Поэтому, чтобы командный интерпретатор не запутался, первый параметр обязательно указываем, даже если он не нужен – просто оставляем его пустым.
Тогда наша команда преобразится:
start "" "C:Program FilesSoundClubscw.exe"
Правильным также будет заключение в скобки всех наименований папок/файлов с пробелами внутри. Но встречаются ситуации, когда оба варианта не сработают. В таких случаях можно посоветовать посредством команды cd перейти в нужный каталог и работать уже в целевом. В нашем случае батник будет иметь вид:
%SystemDrive% cd Program FilesSoundClub start scw.exe
Этот метод более трудоёмкий, но он гарантированно рабочий.
Как видим, создание, написание BAT-файлов даже для таких простых задач, как запуск программ в Windows, является по большому счёту искусством.
Основные команды, примеры использования BAT-файлов
Принцип создания батников прост и понятен, но основные сложности связаны с его содержимым – без команд такой файл бесполезен. Самый простой и, кстати, наиболее часто используемый пример команды – это уже рассмотренный нами запуск программ, или команда start. Её полный синтаксис занимает несколько строк, при желании вы сможете ознакомиться с ним, отыскав соответствующие инструкции. Мы же пока рассмотрим, как можно автоматизировать простой запуск трёх программ, которые вы используете в своей ежедневной работе. Пускай это будут Chrome, VLC и Total Commander.
Создадим пакетник, который последовательно запустит все три программы с пятисекундной задержкой.
Батник будет иметь вид:
start "" "C:/Program Files/Google/Chrome/Application/chrome.exe"
timeout /t 05
start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"
timeout /t 05
start "" "C:/Program Files/TotalCMD/totalcmd.exe"
Зачем нужны пустые кавычки, вы уже знаете. Команда timeout с параметром /t указывает временной интервал до запуска следующей команды.
Если бы в пути не было папок с пробелами, их можно было бы указывать без кавычек.
Стандартный способ выполнения этого BAT-файла предполагает, что при выполнении скрипта будет открыто три окна консоли, которые закроются автоматически, как только отработка команды завершится. Но существует способ запуска команд старт в одном окне терминала. Для этого сразу после директивы start добавляется параметр /b, и только затем – всё остальное.
Иногда для запуска программ через батник, требуется реакция пользователя, то есть он должен сам решать, когда должна стартовать следующая программа. В таких случаях вместо timeout ставят директиву pause без параметров, в результате чего после запуска каждой программы будет появляться сообщение «Нажмите любую клавишу для продолжения».
Ещё один интересный пример – скрипт, запуск которого приведёт к выключению или перезагрузке компьютера. Основной командой будет shutdown с параметрами, но будет и ряд вспомогательных директив, которые нужно знать, ибо они могут оказаться полезными и в других случаях.
Пример такого скрипта:
@echo off
chcp 1251
echo «Вы действительно хотите выключить компьютер?»
pause
shutdown /s /t 0
Первая директива указывает, что при выполнении команд они не должны выводиться на экран. Со второй строкой всё понятно – мы хотим использовать кириллические символы. Команда echo служит для вывода содержимого параметра в кавычках на монитор. Действие директивы pause вам тоже известно. Наконец, команда shutdown инициирует выключение ПК (если указан параметр /s) или его перезагрузку (/r), а параметр /t задает задержку в секундах перед выполнением команды.
В принципе для выполнения основного действия достаточно пятой строки, без использования предыдущих четырёх.
Иногда, несмотря на присутствие директивы chcp 1251, кириллические символы выводятся крякозябрами. Попробуйте в таких случаях использовать кодировку ANSI.
В BAT-файлах часто используют команды, предназначенные для работы с файловой системой.
Так, команду del можно использовать для удаления папок и/или файлов, её аналогом является команда erase. Среди используемых параметров отметим следующие:
- /p – указывает, что перед удалением файла/каталога нужно ответить утвердительно на запрос системы;
- /f – удаление даже тех файлов, которые имеют атрибут «только для чтения»;
- /s – удаление каталога вместе с внутренним содержимым, всеми подкаталогами и файлами;
- /q – удалять файлы, не спрашивая подтверждения.
Очень полезная команда, позволяющая автоматизировать создание резервных копий важных каталогов посредством копирования папки в указанное место вместе со всеми подкаталогами:
robocopy C:/data E:/backup1 /e
pause
В результате выполнения команды папка data будет скопирована в каталог backup1, размещённый на другом логическом диске, вместе со всем содержимым. И у этой команды имеется множество параметров, позволяющих настраивать работу скрипта достаточно гибко.
Другие возможности запуска батников
Мы рассмотрели только малую часть команд и возможностей BAT-файлов. Рассмотрим ещё несколько показательных примеров.
Запуск батников от имени администратора
Многие пользователи сталкивались с необходимостью запуска системных утилит, служб или программ с правами администратора. Подобная возможность имеется и для пакетных файлов.
Самый очевидный и простой способ запустить BAT-файл через командную сроку от имени администратора – кликнуть по имени этого файла ПКМ и выбрать из контекстного меню соответствующий пункт. Недостаток этого метода очевиден – эту процедуру придётся повторять каждый раз при запуске скрипта.
Но процесс можно автоматизировать – нужно создать для батника ярлык, в свойствах которого нажать кнопку «Дополнительно» и поставить галочку напротив фразы «Запуск от имени администратора». При этом пиктограмму для ярлыка можно выбрать по своему усмотрению, что полезно, если таких батников у вас много.
Запуск скриптов по расписанию
В принципе для этих целей можно использовать уже упоминавшуюся директиву timeout с параметром /t, но её возможности сильно ограничены. Оптимальным способом будет использование системного «Планировщика задач».
Для этого запускаем «Планировщик» (например, через консоль «Выполнить», набрав команду taskschd.msc), выбираем нужный триггер, кликаем на опции «Запустить программу» и указываем полный путь к батнику. Этого достаточно, чтобы наш пакетный файл запускался по расписанию.
Скрытый запуск батника
Поскольку выполнение скрипта требует запуска интерпретатора командной строки, при запуске BAT-файлов на экране всегда мелькает чёрное окно консоли. Некоторых оно раздражает, некоторых – пугает. Можно ли запускать пакетные файлы в скрытом режиме? Оказывается, да, причём разными способами.
Простейший метод заключается в создании ярлыка на пакетник, в свойствах которого во вкладке «Окно» указываем опцию «Свёрнутое в значок». В результате запуска такого скрипта рабочий стол будет оставаться девственно чистым, единственным напоминанием о наших действиях будет появление пиктограммы CMD в области панели задач.
Если вас и такой вариант не устраивает, можно использовать так называемый «костыль» – специальный скрипт VBS, запускающий BAT-файл в скрытом режиме.
Содержимое такого скрипта, который нужно сохранить под именем hidden.vbs:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "D:script.bat" & Chr(34), 0
Set WshShell = Nothing
Здесь вместо D:script.bat нужно указать полный путь к вашему батнику.
Итак, мы рассмотрели несколько способов, как создать и запустить BAT-файл, познакомились с основами его синтаксиса, а более детальную информацию можно найти в интернете. Весьма полезным будет прочтение учебника «Командная строка MS Windows» от Уильяма Станека, изданного в 2004 году и до сих пор не утратившего актуальности.