Как правильно написать bat файл


Загрузить PDF


Загрузить PDF

Из данной статьи вы узнаете, как написать и сохранить простейший пакетный файл (батник) на компьютере под управлением Windows. Пакетный файл содержит ряд команд DOS (операционная система) и обычно используется для автоматизации часто выполняемых задач, таких как перемещение файлов. Чтобы создать батник, сложное программное обеспечение не нужно — вам понадобится только текстовый редактор Блокнот.

  1. Изображение с названием 4288 1 2

    1

    Откройте Блокнот. В Блокноте можно написать программу в виде текстового файла, а затем сохранить его как пакетный файл. Чтобы открыть Блокнот, откройте меню «Пуск»

    Изображение с названием Windows Start

    , введите блокнот и нажмите на синий значок «Блокнот» в верхней части меню.

    Реклама

  • Блокнот используется для преобразования текстовых файлов в пакетные, но код пакетного файла можно написать в любом текстовом редакторе.
  • Запомните некоторые основные команды. Пакетный файл запускает команды DOS, поэтому используемые команды аналогичны командам DOS. Вот некоторые из наиболее важных команд:

    Изображение с названием 4288 2 2

    • ECHO: выводит текст на экран;
    • @ECHO OFF: скрывает отображаемый текст;
    • START: запускает файл с приложением;
    • REM: добавляет строку с комментариями;
    • MKDIR/RMDIR: создает и удаляет каталоги;
    • DEL: удаляет файлы;
    • COPY: копирует файлы;
    • XCOPY: копирует файлы с дополнительными параметрами;
    • FOR/IN/DO: определяет файлы;
    • TITLE: редактирует заголовок окна.
      [1]
  • Напишите программу для создания каталога. Самый быстрый способ научиться создавать пакетные файлы — это начать с простейших задач. Например, используйте пакетный файл, чтобы быстро создать несколько каталогов:

    Изображение с названием 4288 3 2

    [2]

    MKDIR c:каталог1
    MKDIR c:каталог2
    
  • Напишите программу для создания резервной копии. Пакетные файлы отлично подходят для запуска сразу нескольких команд, особенно если эти команды нужно запустить множество раз. С помощью команды XCOPY можно создать пакетный файл, который скопирует файлы из указанных папок в резервную папку, причем будут перезаписаны только те файлы, которые были изменены с момента последнего копирования:

    Изображение с названием 4288 4 2

    @ECHO OFF 
    XCOPY c:original c:backupfolder /m /e /y
    
    • Эта программа скопирует файлы из папки «original» в папку «backupfolder». Эти папки можно заменить другими (с соответствующими путями к папкам). /m указывает, что будут скопированы только измененные файлы; /e указывает, что будут скопированы все подпапки (которые есть в указанной папке); /y выводит на экран запрос на перезапись файла.
  • Напишите более сложную программу для создания резервной копии. Простое копирование файлов из одной папки в другую облегчает работу с компьютером, но что если отсортировать файлы во время их копирования? Для этого понадобится команда FOR/IN/DO. Воспользуйтесь этой командой, чтобы указать, в какую папку должен скопироваться файл в зависимости от его расширения:

    Изображение с названием 4288 5 2

    @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
    
  • Поэкспериментируйте с различными командами. В интернете можно найти множество примеров программ для пакетных файлов.

    Изображение с названием 4288 6 2

    1. Изображение с названием 4288 7 2

      1

      Закончите вводить программу пакетного файла. Когда вы завершите вводить и редактировать программу пакетного файла, сохраните его в качестве исполняемого файла.

    2. Изображение с названием 4288 8 2

      2

      Щелкните по Файл. Эта опция находится в верхнем левом углу окна Блокнота. Откроется выпадающее меню.

    3. Изображение с названием 4288 9 2

      3

      Нажмите Сохранить как. Эта опция находится в выпадающем меню «Файл». Откроется окно «Сохранить как».

    4. Изображение с названием 4288 10 2

      4

      Введите имя и расширение .bat. В строке «Имя файла» введите имя, а затем введите .bat.

      • Например, если пакетный файл для резервного копирования будет называться «backup», введите backup.bat.
    5. Изображение с названием 4288 11 2

      5

      Откройте выпадающее меню «Тип файла». Вы найдете его в нижней части окна «Сохранить как».

    6. Изображение с названием 4288 12 2

      6

      Щелкните по Все файлы. Эта опция находится в выпадающем меню. Так вы сможете сохранить файл с указанным расширением (в данном случае с расширением .bat).

    7. Изображение с названием 4288 13 2

      7

      Укажите папку, в которой будет храниться пакетный файл. Для этого щелкните по нужной папке (например, по «Рабочий стол») в левой части окна.

    8. Изображение с названием 4288 14 2

      8

      Нажмите Сохранить. Эта кнопка находится в нижнем правом углу окна «Сохранить как». Окно закроется.

    9. Изображение с названием 4288 15 2

      9

      Закройте Блокнот. Файл будет сохранен как пакетный файл в указанной папке.

    10. Изображение с названием 4288 16 2

      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
    
    

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

    Курс по SQL для начинающих

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

     
     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 файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом.

    Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в 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.

    ключи команды '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. У вас должен появиться файл с такой иконкой:

    test.bat

    test.bat

    Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем «Открыть». Должен открыться блокнот, пишем:

    @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» то:

    1. Переменной задастся значение выражения, а не его текст, например:

      set a=2+2
      > 2+2
      set /a a=2+2
      > 4
    2. Переменной можно присвоить ТОЛЬКО числовое значение

    Чтобы обратиться к переменной, нужно окружить ее символами «%» (так %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

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

    расширения имен

    Если вы ошиблись при сохранении и пакетный файл сохранился с расширением txt, то не обязательно совершать повторное сохранение. Можно включить отображение расширения имен файлов и переименовать файл.

    Запуск bat-файлов

    запуск от имени администратора

    Запуск пакетных файлов производится двойным кликом по иконке. Дополнительно можно использовать команду Открыть из контекстного меню, которое доступно при нажатии правой клавиши мыши (ПКМ) по файлу. Если для выполнения команд требуются права администратора, то в том же контекстном меню есть пункт Запуск от имени администратора

    Исполняемые bat-файлы не могут запрашивать права администратора, если командам нужны расширенные права.

    Запуск через контекстное меню откроет командный интерпретатор, в котором выполнятся команды bat-файла. По завершении команд окно закроется. Такое поведение неприемлемо, если от пакетного файла требуется какая-то обратная связь — например, сообщение об ошибке или результат вычислений. В таком случае интерпретатор следует запустить вручную и передать ему пакетный файл. 

    выполнение команды cmd

    Для запуска интерпретатора командной строки необходимо открыть меню Выполнить сочетанием клавиш 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-файл правильно

    И выход был найден – самые распространённые сценарии записывались в текстовый файл специального формата с расширением BAT, который затем интерпретировался операционной системой, а вернее, её компонентой, известной как CMD (интерпретатор командных строк). Оказывается, GUI-интерфейс оказался не таким всемогущим, и ряд задач даже в Windows последних поколений можно автоматизировать только с помощью BAT-файлов.

    Что собой представляет BAT-файл

    С точки зрения пользователя компьютера это текстовый файл с соответствующим расширением, но для операционной системы такие файлы особенные – они состоят из ряда команд, которые после запуска интерпретируются и выполняются по определённым правилам. Таким образом, ответ на вопрос, что такое батник для компьютера под управлением ОС Windows, может звучать следующим образом: это набор команд, записанный в текстовом формате, позволяющий сэкономить время на их наборе каждый раз, когда возникнет необходимость. Сленговое название таких файлов – батник, их также называют пакетными файлами.

    Пример кода в BAT-файле

    С помощью таких батников можно автоматизировать целые классы задач:

    • осуществлять управление файловой системой компьютера (удалять, создавать, перемещать файлы, каталоги, подкаталоги);
    • выполнять последовательность команд с определёнными параметрами, которые могут быть контекстно-зависимыми;
    • осуществлять пакетный запуск программ/утилит.

    Как создать файл с расширением BAT в Windows 10/8/7

    Поскольку батник представляет собой обычный текстовый файл с необычным контентом, для его создания сгодится практически любой текстовый редактор. Разумеется, потребуется также знание синтаксиса языка командной строки. Использовать Word – не самый оптимальный способ, гораздо проще задействовать «Блокнот», но ещё лучше воспользоваться Notepad++, поскольку этот редактор обладает полезной «фишкой» – умеет подсвечивать синтаксис, облегчая задачу пользователям. Правда, в состав операционной система он не входит, его придётся скачивать.

    В обоих случаях создание батника происходит по одинаковому сценарию: в меню «Файл» выбираем «Создать», заполняем файл содержимым, по окончании редактирования кликаем «Сохранить как», даём имя пакетному файлу, а в поле «Тип файла» указываем «Batch file».

    Сохранение с расширением BAT

    В классическом «Блокноте» расширение необходимо написать руками, выбрав в поле «Тип файла» опцию «Все файлы».

    При написании пакетных скриптов необходимо учитывать следующие нюансы:

    • перенос строк в таких файлах недопустим, он будет интерпретироваться неправильно;
    • правильной кодировкой будет 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 году и до сих пор не утратившего актуальности.

    Понравилась статья? Поделить с друзьями:
  • Как правильно написать заявление делопроизводство
  • Как правильно написать 9900
  • Как правильно написать заявку на поставку товара
  • Как правильно написать 660
  • Как правильно написать замена картриджа