Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы

Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного файла.


Пользователи компьютеров с операционной системой Windows часто сталкиваются с файлами, которые имеют расширение.bat. Это так называемые командные файлы. Для чего они предназначены, как создаются и модифицируются, какие проблемы бывают у пользователей при работе с пакетными файлами?

Что такое bat-файл? Для чего он нужен

Bat файл – это текстовый файл с определённым набором символов, которые вводятся в командную строку. Запустив всего один файл, пользователь экономит время на выполнение большого количества действий. Такие файлы применяются для автоматизации часто повторяющих действий пользователя. Файл с расширением.bat называется пакетным (командным). На сленге пользователей он называется «батник».

Примеры bat-файлов

Существует множество полезных bat файлов, с помощью которых можно осуществлять управление системой компьютера, запуска вирусов, хищение персональных данных.
Примеры некоторых популярных исполняемых файлов:
  • Удаление пустых папок и подпапок на компьютере с места запуска файла - for /f «usebackq delims=» %%d in (`«dir /ad/b/s | sort /R»`) do rd "%%d"
  • Помните! При наличии в папке скрытых файлов с расширениями.db или.ini удаление папки невозможно.
  • Перенос информационных файлов в подпапки с указанием даты операции – SET FOLDER=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%
    SET ARCFOLDER=Z:\_exchange\%FOLDER%mkdir %ARCFOLDER%
  • Программирование задержки последующих команд на необходимое время – choice /N /T:y,%сек% > nul
  • Запуск файла в свёрнутом окне - start /m /w %путь\файл%
Тысячи различных bat файлов помогают программистам и пользователям общаться с компьютером, находить выходы из самых разнообразных ситуаций, очищать систему от вирусов и вредоносных кодов. Процесс написания скриптов для пакетных файлов целиком и полностью зависит от фантазии пользователей.

Как открыть файл с расширением bat

Осуществив запуск подобного файла, можно открывать и закрывать множество программ. Некоторые из них не используются в более поздних версиях Windows.
Примеры задач, которые решаются с помощью запуска файла.bat:
1. Активизация одной или нескольких утилит, выполняющих функции внутри системы – таймер включения и отключения компьютера, автоматическое освобождение буфера обмена от устаревшей информации, организация точек доступа для Wi-Fi. Первой выполняется команда start "" путь_к_программе. При наличии пробелов необходимо заключить путь в кавычки start "" «C:\Program Files\program.exe».
Далее следует указать параметры запуска start "" c:\windows\notepad.exe file.txt. В процессе запуска есть одна особенность. Если не использовать при указании имени командного файла сдвоенные кавычки, то выполнение команд может происходить неправильно.
2. Из уже открытого файла можно запустить ещё один, набрав команду call путь_к_файлу_bat параметры. Сведения о них находятся в другом bat файле: call file2.bat параметр1 параметр2 параметр3.
Для активации прочих программ используются следующие команды:
  • echo %1
  • echo %2
  • echo %3
  • pause
После всех осуществлённых операций на дисплее появляются все переданные параметры. Если не введен другой порядок операций, командное окно автоматически закрывается. Команда pause останавливает работу программы и закрывает операционное окно.

Как создать bat-файл в Windows? Последовательность действий

Наиболее простой способ создания bat файла – использование программы Блокнот (NotePad). После активации программы из панели «Стандартные» или при помощи команды C:\Windows\notepad.exe на страницу блокнота вносится или копируется код.

В блокноте NotePad файл должен храниться с расширением.bat. Необходимо тщательно проконтролировать, чтобы сохраняемый файл имел тип «Все файлы».


Важно! Если невозможно сохранить bat файл в определённой папке из-за отсутствия у пользователя прав администратора, на дисплее компьютера высвечивается сообщение «У вас нет разрешения на сохранение файлов в этом месте». Смените месторасположение файла на «Рабочий стол» или «Документы». После этого с помощью копирования перенесите его в нужное место на компьютере. Файл.bat создан.

Можно ли изменять bat-файл

Для изменения различных параметров файлы с расширением.bat можно редактировать. Этого можно достичь несколькими способами.
Первый. Открыть контекстное меню и выбрать команду Изменить. Необходимые правки вносятся в файл в любом текстовом редакторе, установленном на компьютер.


Второй. Также осуществляется с использованием NotePad. Необходимо открыть «Проводник», найти файл и перетащить его мышью в рабочую область.


Третий. Зайти в Блокнот, в меню «Файл» найти искомую папку с пакетным файлом.


Далее – изменить опцию показа фалов так, чтобы было активно «Все фалы». После этого можно открывать файл и редактировать, меняя нужные параметры и команды.


Помните! При использовании любого из вышеуказанных способов редактирования конечный файл необходимо обязательно сохранить с применением расширения «Все файлы». В противном случае компьютер сохранит модифицированный файл как текстовый - *.txt.

Нужно запустить bat-файл от имени администратора

Для запуска файла от имени администратора необходимо сделать правый клик по имени и выполнить команду «Запустить от имени администратора».

Есть несколько иных способов запуска командного файла.
1. После нажатия кнопки ПУСК (WIN или комбинация Ctrl+Shift+Esc) необходимо:
  • переключиться на латиницу и набрать на клавиатуре команду.bat.
  • выбрать исполняемый файл *.exe.
  • запустить файл командой «Запуск от имени администратора»
2. Открыть диспетчер задач (Ctrl + Shift + Esc или Ctrl + Alt + Delete), на вкладке «Процессы» выбрать команду «Отображать процессы всех пользователей». В меню «Файл» комбинацией клавиш Ctrl + Клик левой кликнуть на вкладку «Новая задача», затем нажать Выполнить.
3. При включённом отображении типов файлов можно создать файл *.txt, назвать его по своему усмотрению и сменить расширение на.bat.

Почему bat-файл не запускается? Возможные причины

Наиболее вероятные причины отсутствия реакции ЭВМ на исполнение командного файла с расширением.bat или некорректной его работы после запуска:
  • неправильное прописывание команд в скриптах
  • некорректное использование знаков препинания
В большинстве случаев это происходит при неосторожной смене раскладки клавиатуры с латинской на русскую. Командные файлы не воспринимают кириллицу. Те места, где в скрипте появляется русский шрифт, для ЭВМ непонятны. Вполне естественно, меняется путь исполнения bat файла.

Как создать файл с расширением bat: видео

Видеоурок по созданию файла с расширением.bat смотрите здесь:

В данной статейки мы рассмотрим такую полезную вещь как «батник ». Давайте сначала дадим определение, что такое bat файл. Пакетные или batch файлы - это простые текстовые файлы, содержащие наборы команд (инструкцию ) интерпретатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT ). Создавать и редактировать такие файлы можно при помощи обычного блокнота или любого другого текстового редактора.

Теперь Вы спросите, зачем нужно уметь писать такие бат файлы? И зачем они нужны? Попытаюсь объяснить.

Во-первых, они используются для облегчения работы, т.е. например Вам нужно постоянно выполнять какую-нибудь операцию каждый день (например, создавать архив тех или иных документов ), с помощью батника это можно автоматизировать, и Вы в этом уже не будете принимать участия.

Во-вторых, эти пакетные файлы очень мощные (если конечно уметь их писать ), т.е. Вы можете даже написать неплохую программу (я имею в виду по функционалу ). Лично мне они очень помогают в работе, и о некоторых вещах я уже просто забыл, когда это делал я в ручную.

Теперь перейдем непосредственно к основам этих батников. Как же они создаются, Вам нужно просто создать простой текстовый документ открыть его и сразу на вкладке «Файл->сохранить как », вписать вместо расширения «Текстовый документ.txt », например «Текстовый документ.bat » и сохранить, вот и получится у нас батник с расширением.bat, но он пока ничего не делает.

Для начала я приведу пример батника, который я использую у себя на работе для архивации документов.

"C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.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 \\namecomp\arhiv\

Примеры команд для bat файлов

Теперь рассмотрим основные команды, которые Вы можете использовать.

Если Вам нужно удалить файл пропишите следующие:

Del d:\file\test.doc


Для того чтобы удалить весь каталог пропишите:

Rd d:\file\

Вдруг Вам нужно удалять каждый раз все из какого-нибудь каталога, то используйте вот что:

Echo Y| del d:\file\

  • del d:\file\ - это как раз и есть удаление всех файлов;
  • echo Y| - команда подтверждает удаление т.к. если не прописать эту команду, то Вы увидите сообщение о подтверждение удаления – «Продолжить », и Вам нужно будет каждый раз отвечать на этот вопрос.

Сейчас давайте рассмотрим пример посложней, в котором уже выполняется условие:

@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test IF not EXIST d:\test\123.rar GOTO 1 IF EXIST d:\test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.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 файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать 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

Bat-файлы Windows являются удобным способом выполнения различных задач на ПК, которым активно пользуются компьютерные умельцы. Они позволяют автоматизировать повседневные задачи, сократить время их выполнения и превратить сложный процесс во что-то посильное рядовому пользователю. В данной статье представлены базовые возможности командных файлов и рекомендации по самостоятельному их написанию.

Автоматизация - это просто

Как создать bat-файл? Для этого нужно выполнить следующие действия:

  1. В любом текстовом редакторе, например, в Notepad или WordPad, создать текстовый документ.
  2. Записать в нем свои команды, начиная с @echo , а затем (каждый раз в новой строке) - title [название пакетного скрипта], echo [сообщение, которое будет выведено на экран] и pause.
  3. Сохранить текст в электронном документе с расширением.bat (например, test.bat).
  4. Для запуска следует дважды щелкнуть по только что созданному пакетному файлу.
  5. Чтобы его отредактировать, необходимо кликнуть на нем правой кнопкой мыши и из контекстного меню выбрать пункт «Изменить».

Необработанный файл будет выглядеть примерно так:

title Это ваш первый скрипт bat-файла!

echo Добро пожаловать в сценарий пакетной обработки!

Более подробно о командах bat-файлов и их использовании речь пойдет ниже.

Шаг 1: создание программного скрипта

Предположим, что у пользователя часто возникают проблемы с Сетью. Он постоянно пользуется командной строкой, набирая ipconfig и пингуя Google для устранения неполадок в Сети. Через некоторое время пользователь понимает, что было бы намного эффективнее, если бы он написал простой bat-файл, записал его на свой USB-накопитель и запускал его на компьютерах, которые он диагностирует.

Создание нового текстового документа

Пакетный файл упрощает выполнение на компьютере повторяющихся задач с помощью командной строки Windows. Ниже приведен пример скрипта, отвечающего за отображение на экране некоторого текста. Перед тем как создать bat-файл, следует щелкнуть правой кнопкой мыши на пустом месте в каталоге и выбрать пункт «Создать», а затем «Текстовый документ».

Добавление кода

Двойной щелчок на этом новом текстовом документе откроет принятый по умолчанию текстовый редактор. Можно скопировать и вставить приведенный выше пример кода в текстовую запись.

Сохранение

Вышеупомянутый скрипт выводит на экран текст «Добро пожаловать в сценарий пакетной обработки!». Электронный документ необходимо записать, выбрав пункт меню текстового редактора «Файл», «Сохранить как», а затем указать желаемое имя bat-файла. Его следует завершить расширением.bat (например, welcome.bat) и нажать «ОК». Для правильного отображения кириллицы в некоторых случаях следует удостовериться в правильном выборе кодировки. Например, при использовании консоли русифицированной системы Windows NT документ необходимо сохранить в CP866. Теперь следует дважды щелкнуть на ярлыке bat-файла, чтобы активировать его.

Но экране появится надпись:

"Добро пожаловать в сценарий пакетной обработки! Для продолжения нажмите любую клавишу..."

В случае если bat-файл не запускается, пользователи рекомендуют зайти в регистр и удалить ключ:

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.BAT\UserChoice".

Не стоит думать, что это все, на что способны сценарии пакетной обработки. Параметрами скриптов являются измененные версии команд командной строки, поэтому пользователь ограничен только их возможностями. А они довольно обширные.

Шаг 2: знакомство с некоторыми командами

Если пользователь ПК знаком с тем, как следует выполнять команды консоли DOS, то он будет мастером создания программных скриптов, потому что это один и тот же язык. Строки в bat-файлах сообщат интерпретатору cmd.exe все, что от него требуется. Это экономит время и силы. Кроме того, есть возможность задать некоторую логику (например, простые циклы, условные предписания и т. д., которые концептуально схожи с процедурным программированием).

Встроенные команды

1. @echo - это команда bat-файлов, которая позволит увидеть работу скрипта в командной строке. Она используется для просмотра хода выполнения рабочего кода. Если у пакетного файла возникают какие-либо проблемы, то данная команда позволит быстро локализировать проблемы. Добавление off дает возможность быстро завершить выполнение кода, избегая вывода ненужной информации на экран.

2. Title предоставляет те же возможности, что и тег в HTML, т. е. создает заголовок для пакетного скрипта в окне командной строки.</p><p>3. Call вызывает один bat-файл из другого или подпрограмму внутри одного сценария. Например, функция power вычисляет степень %2 числа %1:</p><p>if %counter% gtr 1 (</p><p>set /a counter-=1</p><p>endlocal & set result=%prod%</p><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862019.jpg' width="100%" loading=lazy></p><p>4. Cls очищает командную строку. Используется для того, чтобы предыдущий вывод постороннего кода на помешал просмотру хода выполнения текущего скрипта.</p><p>5. Color задает цвет шрифта и фона. Например, команда color f9 задает белые буквы на синем фоне. Команда без параметра восстанавливает установки по умолчанию.</p><p>6. Echo служит для вывода информации, а также включения (echo on) или выключения (echo off) такого вывода. Например, команда echo. выводит новую строку без точки, а echo . - точку. Без параметров команда выводит на экран информацию о своем текущем статусе - echo on или echo off.</p><p>7. Rem обеспечивает ту же функциональность, что и тег <! в HTML. Такая строка не является частью выполняемого кода. Вместо этого она служит для пояснения и предоставления информации о нем.</p><p>8. Pause позволяет прервать выполнение команд bat-файла. Это дает возможность прочесть выполненные строки перед продолжением программы. При этом на экран выводится сообщение «Для продолжения нажмите любую клавишу...».</p><p>9. Set позволяет просмотреть или установить переменные окружения. С ключом /p команда запрашивает у пользователя ввод и сохраняет его. С параметром /а она дает возможность выполнять простые арифметические операции, также присваивая их результат переменной. При операциях со строками не должно быть пробелов ни до, ни после знака равенства. Например, команда set выводит на дисплей список переменных окружения, set HOME - значения аргументов, начинающихся с “HOME”, а set /p input=введите целое: запрашивает ввод целого числа и присваивает его соответствующей переменной.</p><p>10. Start "" [веб-сайт] запустит заданный веб-сайт в веб-браузере, используемом по умолчанию.</p><p>11. If служит для проверки определенного условия. Если оно истинно, то выполняется следующая за ним команда. Условия бывают 3 видов:</p><ul><li>ERRORLEVEL число - проверка кода завершения последней выполненной инструкции на соответствие или превышение указанного числа. При этом 0 обозначает успешное выполнение задачи, а любое другое число, обычно положительное, сообщает об ошибке. Например, можно использовать вложенные команды для точного определения кода завершения: if errorlevel 3 if not errorlevel 4 echo произошла ошибка №3.</li><li>Строка1 == строка2 - проверка совпадения двух строк. Например, при отсутствии внешнего параметра команда if "%1"= ="" goto ERROR передаст управление метке ERROR.</li><li>EXIST имя - проверка существования файла с указанным именем. Например, if not exist A:\program.exe COPY C:\PROJECTS\program.exe A: копирует программу program.exe на диск А, если ее там нет.</li> </ul><p>12. Else должна находиться в одной строке с командой If. Указывает на необходимость выполнения следующей инструкции, если выражение окажется ложным.</p><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862021.jpg' width="100%" loading=lazy></p><p>13. For используется для повторения определенных действий с каждым членом списка. Имеет формат for %%аргумент in (список) do команда. Аргументом может быть любая буква от A до Z. Список представляет собой последовательность строк, разделенных пробелами или запятыми. Подстановочные знаки также могут использоваться. Например:</p><ul><li>for %%d in (A, C, D) do DIR %%d - последовательно выводит на экран директории дисков А, С и D;</li><li>for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f - печатает содержимое всех.txt-, .bat- и.doc-файлов в текущей директории;</li><li>for %%P in (%PATH%) do if exist %%P\*.BAT COPY %%P\*.BAT C:\ВАТ - копирует все пакетные файлы, которые существуют во всех каталогах маршрута поиска в папку С:\ВАТ.</li> </ul><p>14. Двоеточие (:) перед словом образует из него ссылку, которая позволяет пропускать часть программного кода или возвращаться назад. Используется с командами Call и Goto, указывая, с какого места следует продолжать выполнение bat-файла, например, при выполнении определенного условия:</p><p>15. Переменные:</p><ul><li>%%a обозначает каждый файл в папке;</li><li>%CD% - текущая директория;</li><li>%DATE% - системная дата, формат которой зависит от локализации;</li><li>%TIME% - системное время в виде ЧЧ:ММ:СС.мм.;</li><li>%RANDOM% - сгенерированное псевдослучайное число в диапазоне от 0 до 32767;</li><li>%ERRORLEVEL% - код завершения, возвращаемый последней выполненной командой или bat-скриптом.</li> </ul><p>Извлечь часть строки, которая содержится в переменной, при известном ее положении и длине можно так:</p><p>%[переменная]:~[начало],[длина]%. Например, показать дату в формате ДД/ММ/ГГГГ как ГГГГ-ММ-ДД можно так: echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.</p><p>16. (". \") - корневая папка. При работе с консолью перед изменением имени файла, его удалением и т. д. необходимо направить действие команды в конкретный каталог. При использовании пакетного файла достаточно запустить его в любом нужном каталоге.</p><p>17. %цифра - принимает значения параметров, передаваемых пользователем в bat-файл. Могут разделяться пробелами, запятыми или двоеточиями. «Цифра» представляет собой число от 0 до 9. Например, %0 принимает значение текущей команды. %1 соответствует первому параметру и т. д.</p><p>18. Shift - команда, используемая для смещения входных параметров на одну позицию. Применяется, когда пакетному файлу передаются внешние аргументы. Например, следующий bat-файл копирует на диск D файлы, заданные в качестве параметров в командной строке:</p><p>if not (%1)==() goto next</p><p>Кроме того, с аргументами можно производить следующие манипуляции:</p><ul><li>%~ - удалить окружающие кавычки;</li><li>%~f - расширить параметр до полного имени пути вместе с именем диска;</li><li>%~d - показать имя диска;</li><li>%~p - отобразить только путь;</li><li>%~n - выделить из параметра только имя файла;</li><li>%~x - оставить лишь расширение;</li><li>%~s - преобразовать путь в представление с короткими именами;</li><li>%~a - извлечь атрибуты файла;</li><li>%~t - вывести дату и время создания;</li><li>%~z - отобразить размер файла;</li><li>%~$PATH: - производит поиск в директориях, перечисленных в переменной окружения PATH, и расширяет параметр до первого найденного соответствующего полного имени или же выдает пустую строку в случае неудачи.</li> </ul><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862020.jpg' width="100%" loading=lazy></p><h2>Подстановочные знаки</h2><p>Многие команды принимают шаблоны имен файлов - знаков, которые позволяют установить соответствие с группой имен файлов. К подстановочным знакам относятся:</p><ul><li>* (звездочка) - обозначает любую последовательность символов;</li><li>? (знак вопроса) - заменяет один (или 0) знак, отличный от точки (.).</li> </ul><p>Например, команда dir *.txt выводит список txt-файлов, а dir ???.txt - перечень текстовых документов, длина имени которых не превышает 3 букв.</p><h2>Функции</h2><p>Как и подпрограммы, они эмулируются с помощью команд call, setlocal, endlocal и меток. Следующий пример демонстрирует возможность определения переменной, в которой сохраняется результат, в строке вызова:</p><p>call:say result=world</p><p><img src='https://i1.wp.com/syl.ru/misc/i/ai/324915/1862022.jpg' width="100%" loading=lazy></p><h2>Вычисления</h2><p>В bat-файлах можно выполнять простые арифметические операции с целыми 32-битными числами и битами с помощью команды set /a. Максимальным поддерживаемым числом является 2^31-1 = 2147483647, а минимальным - -(2^31) = -2147483648. Синтаксис напоминает язык программирования Си. К арифметическим операторам относятся: *, /, %, +, -. В bat-файле % (остаток целочисленного деления) должен вводиться как “%%”.</p><p>Операторы с двоичными числами интерпретируют число как 32-битную последовательность. К ним относятся: ~ (побитовое НЕ или дополнение), & (И), | (ИЛИ), ^ (исключающее ИЛИ), << (сдвиг влево), >> (сдвиг вправо). Логическим оператором отрицания является! (восклицательный знак). Он изменяет 0 в 1 и ненулевое значение в 0. Оператором комбинирования служит, (запятая), которая позволяет производить большее число операций в одной команде set. Комбинированные операторы присваивания += и -= в выражениях a+=b и a-=и соответствуют выражениям a=a+b и a=a-b. Так же работают и *=, %=, /=, &=, |=, ^=, >>=, <<=. Приоритет операторов следующий:</p><p>(); %+-*/; >>, <<; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, <<=, >>=; ,</p><p>Литералы можно вводить в виде десятичных, шестнадцатеричных (с ведущими 0x) и восьмеричных чисел (с ведущим нулем). Например, set /a n1=0xffff присваивает n1 шестнадцатеричное значение.</p><h2>Внешние команды</h2><ul><li>Exit используется для выхода из консоли DOS или (с опцией /b) только текущего bat-файла или подпрограммы.</li><li>Ipconfig - это классическая консольная команда, которая выводит информацию о сети. Она включает MAC- и IP-адреса, и маски подсети.</li><li>Ping пингует IP-адрес, отправляя к нему пакеты данных, чтобы оценить его удаленность и время ожидания (отклика). Также используется для задания паузы. Например, команда ping 127.0.01 -n 6 приостанавливает выполнение кода на 5 с.</li> </ul><p>Библиотека команд bat-файлов огромна. К счастью, в Сети есть множество страниц, в которых все они перечислены, наряду с переменными пакетного скрипта.</p><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862017.jpg' width="100%" loading=lazy></p><h2>Шаг 3: запись и запуск bat-файла</h2><p>Следующий скрипт намного упростит ежедневную онлайн-активность. Что делать, если есть желание мгновенно открыть все свои любимые новостные сайты? Поскольку скрипты используют команды консоли, то можно создать сценарий, который открывает каждую новостную ленту в одном окне браузера.</p><p>Далее следует повторить процесс создания bat-файла, начав с пустого текстового документа. Для этого необходимо щелкнуть правой кнопкой мыши на пустом месте в какой-либо папке и выбрать пункт «Создать», а затем - «Текстовый документ». После открытия файла требуется ввести следующий скрипт, который запускает основные русскоязычные средства массовой информации, доступные в Интернете:</p><p>start "" http://fb.ru</p><p>start "" http://www.novayagazeta.ru</p><p>start "" http://echo.msk.ru</p><p>start "" http://www.kommersant.ru</p><p>start "" http://www.ng.ru</p><p>start "" http://meduza.io</p><p>start "" https://news.google.com/news/?ned=ru_ru&hl=ru</p><p>Данный скрипт содержит команды start “”, которые открывают несколько вкладок. Можно заменить предложенные ссылки любыми другими на выбор. После ввода скрипта следует зайти в меню редактора «Файл», а затем в «Сохранить как...» и записать документ с расширением.bat, изменив параметр «Тип файла» на «Все файлы» (*. *).</p><p>После сохранения для запуска скрипта достаточно дважды щелкнуть на нем. Веб-страницы мгновенно начнут загружаться. При желании можно разместить этот файл на своем рабочем столе. Это позволит получить мгновенный доступ ко всем любимым сайтам.</p><h2>Организатор</h2><p>Если загружать по несколько файлов в день, то в скором времени в папке «Загрузки» их скопятся сотни. Можно создать скрипт, который упорядочит их по типу. Достаточно поместить.bat-файл с программой в папку с неорганизованными данными и дважды щелкнуть для запуска:</p><p>rem Каждый файл в папке</p><p>for %%a in (".\*") do (</p><p>rem проверить на наличие расширения и непринадлежность к данному скрипту</p><p>if "%%~xa" NEQ "" if "%%~dpxa" NEQ "%~dpx0" (</p><p>rem проверить наличие папки для каждого расширения, и если ее нет, то создать</p><p>if not exist "%%~xa" mkdir "%%~xa"</p><p>rem переместить файл в папку</p><p>move "%%a" "%%~dpa%%~xa\"</p><p>В итоге файлы в директории «Загрузки» сортируются по папкам, названия которых соответствуют их расширению. Это так просто. Данный пакетный скрипт работает с любым типом данных, будь то документ, видео или аудио. Даже если ПК не поддерживает их, сценарий все равно создаст папку с соответствующей меткой. Если уже есть каталог JPG или PNG, то программа просто переместит туда файлы с данным расширением.</p><p>Это простая демонстрация того, на что способны пакетные скрипты. Если какую-то несложную задачу необходимо выполнять снова и снова, будь то упорядочение файлов, открытие нескольких веб-страниц, массовое переименование или создание копий важных документов, пакетный сценарий поможет выполнить утомительную работу за пару кликов.</p> <p>В этой статье:</p> <ul><li>Определение переменных</li> <li>Переменные командной строки (параметры вызова bat-файла)</li> <li>Оператор условия IF</li> <li>Функции</li> <li>Использование возвращаемых значений (обработка кода завершения программы)</li> </ul><p>Определение переменных </p> <p>SET <Имяпеременной>=<Значениепеременной></p> <p>Оператор SET представляет собой расширение возможностей работы с параметрами в операционной системе. Он задает переменную, значение которой подставляется вместо ее имени при любом использовании этого имени между знаками процента. Так, если задано (переменная, которую требуют многие игры, использующие звуковую карту компьютера):</p> <p>SET BLASTER=A220 I5 D1 P330 </p> <p>то при использовании в пакетном файле следующей конструкции:</p> <p>ECHO %BLASTER% </p> <p>на экран будет выведено "A220 I5 D1 P330". Переменные, определенные с помощью оператора SET называются переменными окружения среды (environment) и являются видимыми после выполнения до перезапуска DOS (если не изменять ее вручную в памяти). То есть, ее можно использовать из одного пакетного файла или программы после задания в другом. Наиболее известной является переменная PATH, представляющая собой набор путей для быстрого поиска файлов. Она задается в файле autoexec.bat.</p> <p>Переменные командной строки<br>(параметры вызова bat-файла) </p> <p>%<цифра 0-9></p> <p>Как и в любом языке, в языке пакетных файлов возможно использование переменных, полученных в качестве параметров bat-файла.</p> <p>Всего может быть 10 одновременно существующих независимых переменных. Для написания сложных программ это довольно мало, хотя для обычной работы часто хватает и 3-4. Значение переменной равно значению соответствующего параметра из командной строки. Переменная %0 будет содержать имя.bat-файла и, если вы указали, путь к нему. То есть, если вы запустили файл abc.bat со следующими параметрами:</p> <p>abc.bat a bc def </p> <p>то переменная %0 будет содержать значение abc.bat , %1 будет содержать значение a, %2 будет содержать bc , а %3 - def . Это свойство широко используется для создания универсальных пакетных файлов при работе с повторяющимися операциями.</p> <p>Чтобы получить более чем 10 переменных из командной строки, можно воспользоваться командой SHIFT .</p> <p>Команда SHIFT позволяет использовать число параметров командной строки далее 10. Однако, при этом теряются соответственно более ранние параметры. Иными словами, команда SHIFT сдвигает все значения переменных на один шаг влево. То есть, переменная %0 будет содержать значение, содержавшееся до этого в переменной %1 , а переменная %1 - значение переменной %2 до сдвига. Однако, данная операция является необратимой, то есть, невозможно сдвинуть переменные обратно.</p> <p>Оператор условия IF </p> <p>К счастью, командный интерпретатор cmd.exe современных ОС Windows 2000 и старше поддерживает блоки команд в конструкциях ветвления, что устраняет необходимость применения IF с метками. Блоки команд заключаются в круглые скобки. Выглядит это так (имитируя C/C++ indentation style):</p> <p>if condition (</p> <p>Rem Команды ветки ‘then’ </p> <p>Rem ... </p> <p>) else (</p> <p>Rem Команды ветки ‘else’ </p> <p>Rem ... </p> <p>Конкретный пример использования:</p> <p>@echo off </p> <p>set BUILDMODE=%1 </p> <p>if "%BUILDMODE%" == "" (</p> <p>Echo FAIL: Аргумент является обязательным ^(--debug, --release^) </p> <p>Exit /b 1 </p> <p>rem Удаляем из аргумента все дефисы для упрощения обработки </p> <p>set BUILDMODE=%BUILDMODE:-=% </p> <p>if "%BUILDMODE%" == "debug" (</p> <p>Set CCFLAGS=/Od /MDd /Z7 </p> <p>) else (</p> <p>Set CCFLAGS=/O2 /MD </p> <p>На мой взгляд, с этим уже вполне можно жить. Но, как всегда, жизнь не так проста, как кажется. Есть одна проблема. Переменные, использующиеся в блоках then и else, раскрываются перед началом выполнения этих блоков, а не в процессе выполнения. В приведенном примере это не вызывает никаких проблем, однако в следующем вызовет:</p> <p>if "%BUILDMODE%" == "debug" (</p> <p>Echo INFO: Устанавливаем debug-режим окружения </p> <p>Set OPTFLAGS=/Od </p> <p>Set CCFLAGS=%OPTFLAGS% /MDd /Z7 </p> <p>) else (</p> <p>Echo INFO: Устанавливаем release-режим окружения </p> <p>Set OPTFLAGS=/O2 </p> <p>Set CCFLAGS=%OPTFLAGS% /MD </p> <p>Загвоздка в том, что в обоих блоках подстановка переменной OPTFLAGS произойдет до того, как она будет изменена в процессе выполнения этого блока. Соответственно, в CCFLAGS будет подставлено то значение, которое OPTFLAGS имела на момент начала выполнения данного if-блока.</p> <p>Решается эта проблема путем использования отложенного раскрытия переменных. Переменные, заключенные в !…! вместо %…% , будут раскрыты в их значения только в момент непосредственного использования. Данный режим по умолчанию отключен. Включить его можно либо использованием ключа /V:ON при вызове cmd.exe , либо использованием команды:</p> <p>в тексте самого bat-файла. Второй способ мне представляется более удобным – не очень здорово требовать от кого-то запуска твоего сценария с определенным параметром.</p> <p>С учетом сказанного предыдущий «неправильный» пример может быть исправлен так:</p> <p>setlocal enabledelayedexpansion </p> <p>if "%BUILDMODE%" == "debug" (</p> <p>Echo INFO: Setting up debug mode environment </p> <p>Set OPTFLAGS=/Od </p> <p>Set CCFLAGS=!OPTFLAGS! /MDd /Z7 </p> <p>) else (</p> <p>Echo INFO: Setting up release mode environment </p> <p>Set OPTFLAGS=/O2 </p> <p>Set CCFLAGS=!OPTFLAGS! /MD </p> <p>Вот теперь это почти полноценный if-then-else блок. Почти, потому что если в одной из команд echo у вас встретится закрывающая круглая скобка, то вам необходимо заэкранировать ее символом ^, иначе синтаксический анализатор путается…</p> <p>Но в любом случае, это гораздо лучше безумного количества меток и переходов.</p> <p>Функции </p> <p>А можно создать в bat-файле функцию? Да, можно. Более того, иногда даже нужно. Правда, функциями это можно назвать условно.</p> <p>Есть особый синтаксис команды call , который позволяет перейти на метку в этом же bat-файле с запоминанием места, откуда был произведен этот вызов:</p> <p>call:метка аргументы </p> <p>Возврат из функции производится командой:</p> <p>exit /b [опциональный код возврата] </p> <p>Ключ /b здесь очень важен: без него будет произведен выход не из функции, а из сценария вообще.</p> <p>За подробностями наберите в командной строке:</p> <p>call /? </p> <p>exit /? </p> <p>Что интересно, команда call с таким синтаксисом поддерживает рекурсивные вызовы с автоматическим созданием нового фрейма для переменных аргументов %0-%9. Иногда это может быть полезным. Вот классический пример рекурсивного подсчета факториала на командном языке:</p> <p>@echo off </p> <p>call:factorial %1 </p> <p>echo %RESULT% </p> <p>exit </p> <p>rem Функция для подсчета значения факториала </p> <p>rem Вход: </p> <p>rem %1 Число, для которого необходимо подсчитать факториал </p> <p>rem Выход: </p> <p>rem %RESULT% Значение факториала </p> <p>:factorial </p> <p>if %1 == 0 (</p> <p>Set RESULT=1 </p> <p>Exit /b </p> <p>if %1 == 1 (</p> <p>Set RESULT=1 </p> <p>Exit /b </p> <p>set /a PARAM=%1 - 1 </p> <p>call:factorial %PARAM% </p> <p>set /a RESULT=%1 * %RESULT% </p> <p>exit /b </p> <p>Пример работы:</p> <p>> factorial.bat 10 </p> <p>3628800 </p> <p>Использование возвращаемых значений<br>(обработка кода завершения программы) </p> <p>Любая программа при завершении своей работы возвращает операционной системе код своего завершения. Принято при успешном завершении возвращать ноль, иначе - код ошибки. Иногда, или, вернее, часто, программа "сознательно" возвращает ненулевое значение для того, чтобы в пакетном файле можно было "узнать" некоторые подробности ее работы. Например, программа возвращает код нажатой клавиши, а.bat-файл по нему выполняет различные действия.</p> <p>Каким же образом пакетный файл может узнать код завершения выполненной программы? Для этого предусмотрено ключевая переменная ERRORLEVEL .</p> <p>Пример пакетного файла с errorlevel"ами:</p> <p> @ECHO OFF </p> <p>REM Запускаем программу prg1.exe </p> <p>PRG1.EXE </p> <p>REM Анализ кода завершения </p> <p>IF ERRORLEVEL 2 GOTO FILENOTFOUND </p> <p>IF ERRORLEVEL 1 GOTO WRITEERROR </p> <p>IF ERRORLEVEL 0 GOTO EXITOK </p> <p>GOTO ONEXIT </p> <p>:FILENOTFOUND </p> <p>ECHO Ошибка! Файл не найден! </p> <p>GOTO ONEXIT </p> <p>:WRITEERROR </p> <p>ECHO Ошибка записи! </p> <p>GOTO ONEXIT </p> <p>:EXITOK </p> <p>ECHO Программа завершена благополучно. </p> <p>GOTO ONEXIT </p> <p>:ONEXIT </p> <p>Обратите внимание - анализ кода завершения начинается не с нуля, а с максимально возможного значения. Дело в том, что подобная проверка означает: "если errorlevel больше или равен значению, то...". То есть, если мы будем проверять, начиная с нуля, любое значение будет истинным на первой же строке, что неверно.</p> <p>Это самая распространенная ошибка в подобного рода программах.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> </article> <div class="entry-footer"> <span class="entry-meta__comments" title="Комментариев"><span class="fa fa-comment-o"></span> </span> <span class="entry-meta__views" title="Просмотров"><span class="fa fa-eye"></span> </span> </div> <div class="b-share b-share--post"> <div class="b-share__title">Понравилась статья? Поделиться с друзьями:</div> <span class="b-share__ico b-share__vk js-share-link" data-uri="http://vk.com/share.php?url=https%3A%2F%2Fofflink.ru%2Fbeg-na-begovoj-dorozhke%2F"></span><span class="b-share__ico b-share__fb js-share-link" data-uri="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span><span class="b-share__ico b-share__tw js-share-link" data-uri="http://twitter.com/share?text=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span> <span class="b-share__ico b-share__ok js-share-link" data-uri="https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span><span class="b-share__ico b-share__gp js-share-link" data-uri="https://plus.google.com/share?url=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span><span class="b-share__ico b-share__whatsapp js-share-link js-share-link-no-window" data-uri="whatsapp://send?text=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span> <span class="b-share__ico b-share__viber js-share-link js-share-link-no-window" data-uri="viber://forward?text=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span><span class="b-share__ico b-share__telegram js-share-link js-share-link-no-window" data-uri="https://telegram.me/share/url?url=https%3A%2F%2Fofflink.ru%2Fsecurity%2Fkak-sozdat-bat-fail-v-windows-poshagovoe-opisanie-rekomendacii%2F"></span> </div> <div class="b-related"> <div class="b-related__header"><span>Вам также может быть интересно</span></div> <div class="b-related__items"> <article id="post-735548" class="post-card post-735548 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/configuring-wi-fi/relevantnaya-informaciya-pozvolyaet-relevantnost-chto-eto/"> <img width="330" height="140" src="/uploads/89d95006e64c75445ae8d25cc86fc001.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Релевантность что это простыми словами" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Настройка WI-FI</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/configuring-wi-fi/relevantnaya-informaciya-pozvolyaet-relevantnost-chto-eto/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> <article id="post-735547" class="post-card post-735547 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/bluetooth/samsung-galaxy-s8-seryi-ili-rst-kak-otlichit-originalnyi-telefon-samsung-kakaya/"> <img width="330" height="140" src="/uploads/7e80d4d136d1157b986de8a56ec44379.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Как отличить оригинальный телефон Samsung" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Bluetooth</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/bluetooth/samsung-galaxy-s8-seryi-ili-rst-kak-otlichit-originalnyi-telefon-samsung-kakaya/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> <article id="post-735546" class="post-card post-735546 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/security/chitalsya-djvu-kak-otkryt-fail-djvu-rasshirenie-faila-djvu-chem/"> <img width="330" height="140" src="/uploads/1a9e65e46ce7dcdcfb331b6aaf4334f8.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Читался djvu. Как открыть файл.djvu? Расширение файла.djvu: чем открыть. Работа с программой WinDjView" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Безопасность</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/security/chitalsya-djvu-kak-otkryt-fail-djvu-rasshirenie-faila-djvu-chem/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> <article id="post-735545" class="post-card post-735545 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/wi-fi/effekt-drozhaniya-effekt-drozhaniya-chtenie-i-peredacha-myslei/"> <img width="330" height="140" src="/uploads/5a5df16ae52a8d5244a8f3bb366280d2.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Эффект дрожания Чтение и передача мыслей" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Wi-fi</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/wi-fi/effekt-drozhaniya-effekt-drozhaniya-chtenie-i-peredacha-myslei/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> <article id="post-735544" class="post-card post-735544 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/the-types-of-wireless-networks/kitaiskii-telefon-raskladushka-s-dvumya-sensornymi-ekranami-sotovye/"> <img width="330" height="140" src="/uploads/a3e334a54de7842c811ef7b6c05ceeb1.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Сотовые телефоны раскладушки - с большим экраном - цены" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Виды беспроводных сетей</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/the-types-of-wireless-networks/kitaiskii-telefon-raskladushka-s-dvumya-sensornymi-ekranami-sotovye/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> <article id="post-735538" class="post-card post-735538 post type-post status-publish format-standard has-post-thumbnail hentry" itemscope itemtype="http://schema.org/BlogPosting"> <div class="post-card__image"> <a href="/bluetooth-setup/kak-delaetsya-sbros-nastroek-na-samsung-galaxy-s8-i-s8-plus-skrytye-funkcii-galaxy-s8/"> <img width="330" height="140" src="/uploads/44bdf5c44f60fc0079d5c412444c716b.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Скрытые функции Galaxy S8: вы должны знать об этих хитростях Интересные функции samsung galaxy s8" itemprop="image" sizes="(max-width: 330px) 100vw, 330px" / loading=lazy> <div class="entry-meta"> <span class="entry-category"><span itemprop="articleSection">Настройка Bluetooth</span></span> </div> </a> </div> <header class="entry-header"> <div class="entry-title" itemprop="name"><a href="/bluetooth-setup/kak-delaetsya-sbros-nastroek-na-samsung-galaxy-s8-i-s8-plus-skrytye-funkcii-galaxy-s8/" rel="bookmark" itemprop="url"><span itemprop="headline">Как создать BAT-файл в Windows: пошаговое описание, рекомендации. Как сделать bat файл для запуска программы</span></a></div> </header> <div class="post-card__content" itemprop="articleBody">Вы хотите продлить жизнь своего компьютера? Тогда для экономии системных ресурсов создавайте различные полезные программы и утилиты. Запустить их вы можете при помощи только одного командного...</div> </article> </div> </div> <meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="/beg-na-begovoj-dorozhke/" /> <meta itemprop="dateModified" content="2017-05-13" /> <meta itemprop="datePublished" content="2016-10-28T11:16:04+00:00" /> <script> var mt_cid = 43603314 </script> <script async="async" src="https://adcounter14.uptolike.com/counter.js?sid=stf22ceea420b22686332c72fa963f260cb21fbe9e" type="text/javascript"></script> </main> </div> </div> <aside id="secondary" class="widget-area" itemscope itemtype="http://schema.org/WPSideBar"> <div id="search-2" class="widget widget_search"> <form role="search" method="get" id="searchform" action="/" class="search-form"> <label class="screen-reader-text" for="s">Поиск: </label> <input type="text" value="" name="s" id="s" class="search-form__text"> <button type="submit" id="searchsubmit" class="search-form__submit"></button></form> </div> <div id="text-13" class="widget widget_text"> <div class="textwidget"> <div id="comuji1" style="height:500px;width:300px;" align="center"></div> </div> </div> <div id="wpshop_articles-3" class="widget widget_wpshop_articles"> <div class="widget-header">Популярные материалы</div> <div class="widget-article"> <div class="widget-article__image"><a href="/wi-fi/samostoyatelnaya-proshivka-smartfona-philips-xenium-samostoyatelnaya/"> <img width="330" height="140" src="/uploads/f99a92ad7f3eb253aaafbd0bcd5465cd.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Самостоятельная прошивка смартфона Philips Xenium Когда надо обновить прошивку" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/wi-fi/samostoyatelnaya-proshivka-smartfona-philips-xenium-samostoyatelnaya/">Самостоятельная прошивка смартфона Philips Xenium Когда надо обновить прошивку</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/security/pervyi-planshet-apple-kotoryi-mozhno-derzhat-odnoi-rukoi-obzor-ipad/"> <img width="330" height="140" src="/uploads/2dc4181e01e47354837eecb770abfd7e.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Первый планшет Apple, который можно держать одной рукой" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/security/pervyi-planshet-apple-kotoryi-mozhno-derzhat-odnoi-rukoi-obzor-ipad/">Первый планшет Apple, который можно держать одной рукой</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/additionally/chto-takoe-kompyuternyi-virus-kto-napisal-pervyi-kompyuternyi/"> <img width="330" height="140" src="/uploads/1f7d954528fbe06c5ac360e85d075d29.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Кто написал первый компьютерный вирус" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/additionally/chto-takoe-kompyuternyi-virus-kto-napisal-pervyi-kompyuternyi/">Кто написал первый компьютерный вирус</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/additionally/failovye-menedzhery---programmy-dlya-raboty-s-failami-besplatnye-ofisnye/"> <img width="330" height="140" src="/uploads/fb7f41f7792d3b699e4bdd33cb5aa2ea.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Бесплатные офисные программы для Windows Программы для работы с документами: общий обзор" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/additionally/failovye-menedzhery---programmy-dlya-raboty-s-failami-besplatnye-ofisnye/">Бесплатные офисные программы для Windows Программы для работы с документами: общий обзор</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/solving-problems/samyi-prostoi-sposob-ustanovit-melodiyu-na-zvonok-android-samyi/"> <img width="330" height="140" src="/uploads/47f79e9aea83153164defb36cbc9f47a.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Самый простой способ установить мелодию на звонок андроид Новые классные рингтоны на телефон" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/solving-problems/samyi-prostoi-sposob-ustanovit-melodiyu-na-zvonok-android-samyi/">Самый простой способ установить мелодию на звонок андроид Новые классные рингтоны на телефон</a></div> </div> </div> </div> <div id="wpshop_articles-2" class="widget widget_wpshop_articles"> <div class="widget-header">Рекомендуем</div> <div class="widget-article"> <div class="widget-article__image"><a href="/security/titov-b-a-vybiraem-programmu-dlya-sozdaniya-mezhevogo-plana-poligon/"> <img width="330" height="140" src="/uploads/d27b1576a7096c374a3a7ba34bb0a6ad.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Титов Б.А. Выбираем программу для создания межевого плана. Полигон – программы для всех видов кадастровых работ Программы для работы кадастрового инженера" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/security/titov-b-a-vybiraem-programmu-dlya-sozdaniya-mezhevogo-plana-poligon/">Титов Б.А. Выбираем программу для создания межевого плана. Полигон – программы для всех видов кадастровых работ Программы для работы кадастрового инженера</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/additionally/kopiyu-soobshcheniya-anonimnaya-zhaloba-kak-napisat-i-kuda-otpravit/"> <img width="330" height="140" src="/uploads/439d9e73a155cd1802a02f2730cc5dd9.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Анонимная жалоба: как написать и куда отправить" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/additionally/kopiyu-soobshcheniya-anonimnaya-zhaloba-kak-napisat-i-kuda-otpravit/">Анонимная жалоба: как написать и куда отправить</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/equipment/mts-nomer-zablokirovan-chto-delat-dlya-razblokirovki-kak/"> <img width="330" height="140" src="/uploads/71c7a8a7daeb439ae17e8365ff35c5fa.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Что делать для разблокировки?" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/equipment/mts-nomer-zablokirovan-chto-delat-dlya-razblokirovki-kak/">Что делать для разблокировки?</a></div> </div> </div> <div class="widget-article"> <div class="widget-article__image"><a href="/security/ispolzovanie-shablonov-i-masterov-microsoft-frontpage-opisanie-programmy/"> <img width="330" height="140" src="/uploads/2d05435be5b00d2624843e60f75c1e54.jpg" class="attachment-thumb-wide size-thumb-wide wp-post-image" alt="Описание программы microsoft office frontpage В счетчике посещений суммируется и отображается число посещений веб-страницы" / loading=lazy> </a> </div> <div class="widget-article__body"> <div class="widget-article__title"><a href="/security/ispolzovanie-shablonov-i-masterov-microsoft-frontpage-opisanie-programmy/">Описание программы microsoft office frontpage В счетчике посещений суммируется и отображается число посещений веб-страницы</a></div> </div> </div> </div> <div id="text-11" class="widget widget_text"> <div class="textwidget"> <p></p> <div id="yandex_rtb_R-A-218842-11"></div> <p> </p> </div> </div> <div id="text-12" class="widget widget_text"> <div class="textwidget"> <div id="comuji2" style="height:500px;width:300px;" align="center"></div> </div> </div> </aside> </div> <div class="footer-navigation container"> <div class="main-navigation-inner "> <div class="menu-menyu-2-container"><ul id="footer_menu" class="menu"> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item"><a href="/feedback/">Контакты</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item"><a href="">О нас</a></li> <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item"><a href="">Реклама</a></li> </ul></div> </div></div> <footer class="site-footer container" itemscope itemtype="http://schema.org/WPFooter"> <div class="site-footer-inner "> <button type="button" class="scrolltop js-scrolltop"></button> <div class="footer-info"> © 2024 offlink.ru Сайт о беспроводных сетях </div> <div class="footer-counters"> </div> </div></footer> </div> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready(function() { cli_show_cookiebar({ settings: '{ "animate_speed_hide":"500","animate_speed_show":"500","background":"#fff","border":"#444","border_on":true,"button_1_button_colour":"#1e73be","button_1_button_hover":"#185c98","button_1_link_colour":"#ffffff","button_1_as_button":true,"button_2_button_colour":"#333","button_2_button_hover":"#292929","button_2_link_colour":"#444","button_2_as_button":true,"font_family":"inherit","header_fix":true,"notify_animate_hide":true,"notify_animate_show":false,"notify_div_id":"#cookie-law-info-bar","notify_position_horizontal":"right","notify_position_vertical":"bottom","scroll_close":false,"scroll_close_reload":false,"showagain_tab":false,"showagain_background":"#fff","showagain_border":"#000","showagain_div_id":"#cookie-law-info-again","showagain_x_position":"100px","text":"#000","show_once_yn":false,"show_once":"10000"} ' }); }); //]]> </script> <script type='text/javascript' src='https://offlink.ru/wp-content/plugins/jetpack/modules/photon/photon.js'></script> <script type='text/javascript' src='https://offlink.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://offlink.ru/wp-content/plugins/wp-polls/polls-js.js'></script> <script type='text/javascript' src='https://offlink.ru/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js'></script> <script type='text/javascript' src='https://offlink.ru/wp-content/themes/root/js/scripts.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript'> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar": "sidebar-1", "margin_top": 10, "margin_bottom": 0, "stop_id": "", "screen_max_width": 0, "screen_max_height": 0, "width_inherit": false, "refresh_interval": 1500, "window_load_hook": false, "disable_mo_api": false, "widgets": ['text-11'] }; </script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script async="async" type='text/javascript' src='https://offlink.ru/wp-content/plugins/akismet/_inc/form.js'></script> </body> </html>