Загрузить PDF
Загрузить PDF
Из данной статьи вы узнаете, как написать и сохранить простейший пакетный файл (батник) на компьютере под управлением Windows. Пакетный файл содержит ряд команд DOS (операционная система) и обычно используется для автоматизации часто выполняемых задач, таких как перемещение файлов. Чтобы создать батник, сложное программное обеспечение не нужно — вам понадобится только текстовый редактор Блокнот.
-
1
Откройте Блокнот. В Блокноте можно написать программу в виде текстового файла, а затем сохранить его как пакетный файл. Чтобы открыть Блокнот, откройте меню «Пуск»
, введите блокнот и нажмите на синий значок «Блокнот» в верхней части меню.
Реклама
- Блокнот используется для преобразования текстовых файлов в пакетные, но код пакетного файла можно написать в любом текстовом редакторе.
- ECHO: выводит текст на экран;
- @ECHO OFF: скрывает отображаемый текст;
- START: запускает файл с приложением;
- REM: добавляет строку с комментариями;
- MKDIR/RMDIR: создает и удаляет каталоги;
- DEL: удаляет файлы;
- COPY: копирует файлы;
- XCOPY: копирует файлы с дополнительными параметрами;
- FOR/IN/DO: определяет файлы;
- TITLE: редактирует заголовок окна.
[1]
[2]
MKDIR c:каталог1 MKDIR c:каталог2
@ECHO OFF XCOPY c:original c:backupfolder /m /e /y
- Эта программа скопирует файлы из папки «original» в папку «backupfolder». Эти папки можно заменить другими (с соответствующими путями к папкам). /m указывает, что будут скопированы только измененные файлы; /e указывает, что будут скопированы все подпапки (которые есть в указанной папке); /y выводит на экран запрос на перезапись файла.
@ECHO OFF cd c:source REM Это исходная папка с файлами FOR %%f IN (*.doc *.txt) DO XCOPY c:source"%%f" c:text /m /y REM Все файлы с расширением .doc или .txt REM будут скопированы из c:source в c:text REM %%f это переменная FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:source"%%f" c:images /m /y REM Все файлы с расширением .jpg, .png, .bmp REM будут скопированы из c:source в c:images
-
1
Закончите вводить программу пакетного файла. Когда вы завершите вводить и редактировать программу пакетного файла, сохраните его в качестве исполняемого файла.
-
2
Щелкните по Файл. Эта опция находится в верхнем левом углу окна Блокнота. Откроется выпадающее меню.
-
3
Нажмите Сохранить как. Эта опция находится в выпадающем меню «Файл». Откроется окно «Сохранить как».
-
4
Введите имя и расширение .bat. В строке «Имя файла» введите имя, а затем введите .bat.
- Например, если пакетный файл для резервного копирования будет называться «backup», введите backup.bat.
-
5
Откройте выпадающее меню «Тип файла». Вы найдете его в нижней части окна «Сохранить как».
-
6
Щелкните по Все файлы. Эта опция находится в выпадающем меню. Так вы сможете сохранить файл с указанным расширением (в данном случае с расширением .bat).
-
7
Укажите папку, в которой будет храниться пакетный файл. Для этого щелкните по нужной папке (например, по «Рабочий стол») в левой части окна.
-
8
Нажмите Сохранить. Эта кнопка находится в нижнем правом углу окна «Сохранить как». Окно закроется.
-
9
Закройте Блокнот. Файл будет сохранен как пакетный файл в указанной папке.
-
10
Измените программу пакетного файла. Для этого щелкните по нему правой кнопкой мыши и в меню выберите «Изменить». Пакетный файл откроется в Блокноте; внесите необходимые изменения, а затем сохранить файл, нажав Ctrl+S.
- Изменения вступят в силу, как только вы запустите пакетный файл.
Реклама
Советы
- Если имя файла или каталога содержит пробелы, заключите такое имя в кавычки (например, start "C:Documents and Settings").
- Чтобы отредактировать пакетный файл, можно использовать сторонние редакторы, такие как Notepad++, но по большому счету это пустая затея, если вы собираетесь создавать простейшие пакетные файлы.
- Чтобы запустить некоторые команды (например, ipconfig), потребуются административные привилегии. В этом случае щелкните правой кнопкой мыши по файлу и в меню выберите «Запуск от имени администратора» (если вы вошли в систему в качестве администратора).
Реклама
Предупреждения
- В зависимости от используемых команд пакетные файлы могут быть опасными. Убедитесь, что команды пакетного файла не приведут к нежелательным последствиям (например, к удалению файлов или сбою компьютера).
Реклама
Об этой статье
Эту страницу просматривали 136 499 раз.
Была ли эта статья полезной?
Как писать скрипты на BATCH? 🤔
Все на самом деле проще, чем кажется. 😉
Вывод текста на экран
@echo off echo It's my the first script on BATCH!
Вывод:
It’s my the first script on BATCH!
С первого взгляда стало понятно, чтобы вывести текст на экран нужно воспользоваться командой echo
.
Но что значит первая строчка @echo off
? 🤔 Первая строчка отвечает за отключения «эхо», то есть, другими словами она отключает вывод командной строки. Представим, что вы ее не записали, и вот что у вас получится:
echo It’s my the first script on BATCH!
It’s my the first script on BATCH!
У вас отобразятся команды, которые вы записали в ваш скрипт, а потом их результат.
Комментарии, кодировка и перенос строки
Комментарии
Комментарии в коде чаще всего создаются, для описания какой-либо строчки или какого-либо блока кода.
Имеется несколько способов оставить комментарий:
@rem Смотри какой красивый комментарий rem А как тебе этот комментарий? :: И даже так можно!
Разницы не будет как вы это сделаете, комментарий не читается при исполнении скрипта — он только для вас.
Кодировка
Допустим вы захотели вывести текст в консоль, который написан кириллицей, но при выводе возникает проблема? Что это за символы?!
Для этого следует указать интернациональную кодировку UTF-8:
@echo off @rem chcp *сюда код кодировки* (65001 это UTF-8) chcp 65001 echo Привет, кириллица!
Перенос строк
Если у вас в коде имеется длинная строка, которую вы хотите перенести на другую строчку, чтобы визуально это смотрелось красиво и удобно, можно воспользоваться символом ^
:
@echo off chcp 65001 echo У меня есть очень большой текст, который по сути бессмысленный и я придумываю этот текст на ходу, ^ в прямом эфире и совершенно не важно, что здесь написано. С помощью ёлочки вверх, вы сможете перенести текст ^ на следующую строку и это очень просто работает, но если вывести этот текст в консоль, он будет идти в строчку.
А что, если вы хотите вывести текст выше также, как это было и в коде? Эти ^
ёлочки не способны такого сделать, и тут можно сделать такую штуку:
@echo off chcp 65001 set "n=&echo." echo Это можно сказать простая табуляция.%n%Точнее обычная переменная,^ которая может спокойно перенести строчку на следующую.%n%^ Переменные мы разберем в следующей главе.
Переменные
В BATCH переменные бывают глобальные 🔓 и локальные 🔒, изначально они все глобальные, а также их несколько видов.
Глобальные переменные можно использовать повсюду, в скрипте, другом bat-файле
, но только в текущей сессии. Что такое текущая сессия? 🤔 Простыми словами это открытая консоль в данный момент. Давайте разбираться, но для начала посмотрим, как можно создать самую простую переменную.
set variable_name=Simple variable
Любая переменная создается с ключевого слова set
, дальше можно указать тип переменной (необязательно), после обозвать её. Значения переменной указываются после символа =
без пробелов. Обычная переменная может содержать только строку (string).
@echo off @rem Моя первая переменная, и сейчас я ее выведу на экран. set text=Hello, world! echo %text%
Вывод:
Hello, world!
Как вы наверное догадались, чтобы получить значение переменной, нужно обернуть название переменной в символы %
.
Другой вид переменной, числовой.
С такой переменной можно проводить математические операции:
@echo off @rem Как мне сложить два числа? set /a number=2021 + 1 echo New %number% year
Вывод:
New 2022 year
Также можно создать две разных переменных и сложить их воедино.
@echo off set /a number1=100 set /a number2=899 set /a result=number1 + number2 echo %number1% + %number2% = %result%
Вывод:
100 + 899 = 999
Давайте расмотрим еще один вид переменной.
@echo off set /p input=Enter some text: echo %input%
Вход:
script запускаем файл
Enter some text: Don’t worry, smile!
Вывод:
Don’t worry, smile!
Такая переменная может принимать в себя данные, которые вы передадите.
Имеется еще один интересный вид переменной, она называется переменной аргумента.
Обозначается она таким образом: %1 %2 %3...
Вход:
script Something
Вывод:
Something
Когда мы запускаем наш bat-файл
из консоли, мы можем передать любой аргумент после его названия: script Something
.
script — название нашего файла, Something — наш желаемый аргумент. Если мы попытаемся передать несколько слов (аргументов) через пробел, то у нас засчитает только первое слово. То есть каждое новое слово по сути является новым аргументом.
Вход:
script Everything will be fine…
Вывод:
Everything
Этого можно избежать следующими способами:
- Указать больше переменных.
- Обернуть текст в кавычки
" "
- Указать символ
*
Способ первый:
Я хочу передать вот этот текст: Everything will be fine...
. Здесь 4 слова (необязательно слова, после каждого нового пробела получается новый аргумент)
@echo off echo %1 %2 %3 %4
Вход:
script Everything will be fine…
Вывод:
Everything will be fine…
Второй способ:
В этом способе я оберну текст в кавычки " "
Вход:
script «Everything will be fine…»
Вывод:
«Everything will be fine…»
Третий способ:
Вход:
script Everything will be fine…
Вывод:
Everything will be fine…
Также на основе таких переменных можно сделать небольшой калькулятор, для этого эту переменную нужно как-бы преобразовать в числовой тип:
@echo off set /a value=%1 echo %value%
Вход:
script 12+12
Вывод:
24
Локальные переменные
Локальные переменные задаются в блоке от setLocal
до endLocal
. Такими переменными нельзя воспользоваться за пределами блока, и также они недоступны в сессии, как глобальные.
@echo off set global_variable=I'm Global Elite setLocal set local_variable=I'm... I.. nobody?... endLocal
Попробуйте запустить этот скрипт, а после прописать в консоли echo %global_variable%
, получилось?
Теперь попробуйте echo %local_variable%
. Мм.. нет?
Также глобальными переменными можно пользоваться в других bat-файлах
. Попробуйте создать другой файлик и к примеру вывести глобальную переменную на экран.
В принципе все просто.
Практика:
- Попробуйте написать скрипт, который будет принимать ваше имя и возраст, после выводить его на экран.
Ваше имя: Даниил
Ваш возраст: 17
Привет, Даниил, а знаю, что тебе 17 лет!
- Попробуйте сделать простой калькулятор, который будет только складывать числа.
Введите первое число: 12
Введите второй число: 12
Ответ: 24
Циклы
Цикл for (по умолчанию)
Данный цикл используется для повторения файлов, пример:
@echo off for %%i in (C:folderfantasy.txt C:foldermyths.txt) do ( copy %%i C:UsersuserDesktop )
Разберем начало цикла, цикл создается с ключевого слова for
, следующим можно указать вид цикла /r
, /d
, /f
, /l
(необязательно). Вид цикла используется в разных ситуациях, в которых вы хотите его применить. Дальше в этом разберемся.
Переменная в цикле начинается с двух символов %%
, а после записывается само название (названием переменной должен служить 1 единственный символ).
В ( )
записываем пути к файлам, с которыми в будущем будем осуществлять работу.
Работа осуществляется в теле цикла, чтобы туда попасть, нужно записать ключевое слово do
, открыть скобки ()
и приступить к написанию скрипта.
В этом случае, мы просто копируем файлы (fantasy.txt, myths.txt) в новую директорию.
Цикл for /R
Данный цикл используется для перебора файлов в директории:
@echo off for /r C:folder %%f in (*.txt) do ( echo %%f )
Здесь мы уже указываем команду /r
, следующим можно передать папку, которая будет считаться корневой, если не передавать директорию (C:folder) — текущая директория будет считаться корневой. Также поиск файлов будет осуществляться и в подпапках.
%%f
— является переменной. В скобках ( )
, можно передать файлы, по которым будет осуществляться поиск. Их может быть несколько (*.txt *.py *.bat)
или можно записать .
, она будет искать все файлы в целом (в подпапках тоже).
Цикл for /D
Используется для загрузки списка папок, которые являются подпапками текущей директории:
@echo off cd C:folder for /d %%f in (f* n*) do ( echo %%f )
В данном примере мы получим список папок в директории C:folder, которые начинаются с букв f
и n
. Если передать *
, мы получим список всех папок находящихся в директории.
Цикл for /l
Этот цикл служит для загрузки на ряде цифр (range of numbers):
@echo off for /l %%i in (1, 1, 10) do ( echo %%i )
В этом примере мы выведим цифры от 1 до 10.
for /l %%i in (start, step, end) do ( echo %%i )
- start: Первое значение переменной
- step: После каждого повтора (iteration) значение переменной будет прибавлять ‘step’.
- end: Последнее значение.
…дописывается
Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.
В этой инструкции подробно о том, как создать командный файл bat, запустить его и некоторая дополнительная информация, которая, возможно, окажется полезной в контексте рассматриваемой темы.
Создание .bat файла с помощью блокнота
Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.
Шаги по созданию будут следующими
- Запустите Блокнот (находится в Программы — Стандартные, в Windows 10 быстрее запустить через поиск в панели задач, если блокнота нет в меню «Пуск», запустить его можно из C:Windowsnotepad.exe).
- Введите в блокнот код вашего bat файла (например, скопируйте откуда-то, либо напишите свой, о некоторых командах — далее в инструкции).
- В меню блокнота выберите «Файл» — «Сохранить как», выберите место сохранение файла, укажите имя файла с расширением .bat и, обязательно, в поле «Тип файла» установите «Все файлы».
- Нажмите кнопку «Сохранить».
Примечание: если файл не сохраняется в указанное расположение, например, на диск C, с сообщение «У вас нет разрешения на сохранение файлов в этом месте», сохраните его в папку «Документы» или на рабочий стол, а затем скопируйте в нужное расположение (причина проблемы в том, что в Windows 10 для записи в некоторые папки нужны права администратора, а поскольку блокнот не был запущен от имени администратора, он не может сохранить файл в указанную папку).
Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).
Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».
Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).
Если у вас включено отображение расширений файлов (изменяется в панель управления — параметры проводника — вид — скрывать расширения зарегистрированных типов файлов), то вы можете просто создать файл .txt, затем переименовать файл, установив расширение .bat.
Запуск программ в файле bat и другие базовые команды
В командном файле вы можете запускать любые программы и команды из этого списка: https://technet.microsoft.com/ru-ru/library/cc772390(v=ws.10).aspx (правда, некоторые из указанных могут отсутствовать в Windows 8 и Windows 10). Далее — лишь некоторые базовые сведения для начинающих пользователей.
Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).
Для запуска программы или программ используйте команду:
start "" путь_к_программе
Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:
start "" "C:Program Filesprogram.exe"
После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):
start "" c:windowsnotepad.exe file.txt
Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
call путь_к_файлу_bat параметры
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
call file2.bat параметр1 параметр2 параметр3
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
echo %1 echo %2 echo %3 pause
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
timeout /t время_в_секундах
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
start "" /MIN c:windowsnotepad.exe
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
cmd /c start /b "" путь_к_программе параметры
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
cmd /c start "" /d "путь_к_папке_с_пробелами" /b имя_файла_программы "параметры_с_пробелами"
Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.
В данной статейки мы рассмотрим такую полезную вещь как «батник». Давайте сначала дадим определение, что такое bat файл. Пакетные или batch файлы — это простые текстовые файлы, содержащие наборы команд (инструкцию) интерпретатора и имеющие расширение bat или cmd (cmd работают только в ОС семейства NT). Создавать и редактировать такие файлы можно при помощи обычного блокнота или любого другого текстового редактора.
Теперь Вы спросите, зачем нужно уметь писать такие бат файлы? И зачем они нужны? Попытаюсь объяснить.
Во-первых, они используются для облегчения работы, т.е. например Вам нужно постоянно выполнять какую-нибудь операцию каждый день (например, создавать архив тех или иных документов), с помощью батника это можно автоматизировать, и Вы в этом уже не будете принимать участия.
Во-вторых, эти пакетные файлы очень мощные (если конечно уметь их писать), т.е. Вы можете даже написать неплохую программу (я имею в виду по функционалу). Лично мне они очень помогают в работе, и о некоторых вещах я уже просто забыл, когда это делал я в ручную.
Теперь перейдем непосредственно к основам этих батников. Как же они создаются, Вам нужно просто создать простой текстовый документ открыть его и сразу на вкладке «Файл->сохранить как», вписать вместо расширения «Текстовый документ.txt», например «Текстовый документ.bat» и сохранить, вот и получится у нас батник с расширением .bat, но он пока ничего не делает.
Для начала я приведу пример батника, который я использую у себя на работе для архивации документов.
"C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.doc "C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.xls "C:Program FilesWinRARwinrar.exe" a -r -dh -ed -agYYYY-mm-dd E:arhaccounts d:accounts*.txt
Теперь немного расскажу, что делает этот батник. Запускается WinRar, потом идут команды винрара:
- a — это добавить в архив;
- -r — обрабатывать вложенные папки;
- -dh — открывать совместно используемые файлы;
- -ed — не добавлять пустые папки;
- YYYY-mm-dd — добавляем к имени архива текущую дату (формат даты);
- E:arhaccounts — путь, где будет лежать конечный архив;
- d:accounts*.doc — путь и маска файлов, какие нужно заархивировать.
В данном случае мы архивируем все документы Word, Excel и текстовые файлы, архивировать остальные нам не требуется. У нас архивация идет на другой диск, и мы еще копируем полученный архив на другой компьютер, для того чтобы архивы хранились и в другом кабинете. Копирование идет по сети соответственно компьютер, на который копируется архив, должен быть включен. Для этого можно использовать такую команду:
copy E:arhaccounts*.rar \namecomparhiv
Теперь рассмотрим основные команды, которые Вы можете использовать.
Если Вам нужно удалить файл пропишите следующие:
Del d:filetest.doc
Для того чтобы удалить весь каталог пропишите:
rd d:file
Вдруг Вам нужно удалять каждый раз все из какого-нибудь каталога, то используйте вот что:
echo Y| del d:file
где,
- del d:file — это как раз и есть удаление всех файлов;
- echo Y| — команда подтверждает удаление т.к. если не прописать эту команду, то Вы увидите сообщение о подтверждение удаления – «Продолжить [Y(да)/N(нет)]», и Вам нужно будет каждый раз отвечать на этот вопрос.
Сейчас давайте рассмотрим пример посложней, в котором уже выполняется условие:
@echo off "C:Program FilesWinRARwinrar.exe" x -O+ -IBCK d:testtest.rar d:test IF not EXIST d:test123.rar GOTO 1 IF EXIST d:test123.rar GOTO 2 :2 "C:Program FilesWinRARwinrar.exe" x -O+ -IBCK d:test123.rar c: del d:test123.rar :1 del d:testtest.rar end
Теперь объясняю, допустим, Вам нужно разархивировать архив test.rar, в котором будет много файлов, но если там окажется файл 123.rar его нужно будет разархивировать в корень диска C, а остальные файлы чтобы остались в том же каталоге не тронутыми.
По порядку, команда @echo off нужна, для того чтобы на экране у нас ничего не отражалось (в принципе, если не нужно можете не писать эту строку). Далее у нас запускается винрар и распаковывает архив test.rar в папку test. Затем идет условие, если в папке test (после распаковки test.rar) у нас не окажется файла 123.rar, то у нас просто выполнение батника переходит к строке :1 и потом просто удаляется файл test.rar за не надобностью т.к. все что нам нужно мы уже распаковали. Но если там оказывается файл 123.rar, то выполнение батника переходит к строке :2, после которой уже идет распаковка файла 123.rar в корень диска C. Другими словами у нас выполняется условие, если есть файл то делать это, если нет файла, делать вот это. Допустим, если не прописать условие в данном примере, то у нас батник выдаст ошибку, тогда когда у нас не окажется файла 123.rar в данной папке.
А сейчас рассмотрим такой пример, допустим, Вам нужно каждый раз перемещать из каталога расположенного на диске D файлы на флешку. Вы каждый раз должны будете заходить мой компьютер диск D, выбирать нужную папку, выделять все файлы из нее и вырезать, а потом только заходить на флешку и вставлять. С помощью батника это делается в один клик (с одним условием, что флешка каждый раз будет, например диском G или тем какой у Вас). Вот пример такого батника:
move "D:catalog*.doc" G:catalognaflehe
И все файлы с расширением doc, которые находятся в каталоге D:catalog будут перемещаться на флешку. Теперь хочу сказать, что в батниках можно использовать сценарии (скрипты) при помощи Windows Scripting Host и если нужно, например чтобы выводилось сообщение, после того как файлы скопированы (предыдущий пример) вставьте вот это:
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%mes.js echo WSHShell.Popup("Файлы Скопированы"); >> %temp%mes.js start %temp%mes.js deltree /y %temp%mes.js
На самом деле про написание батников можно разговаривать много и в одну статью это, конечно же, не уместить, здесь я показал всего лишь принципы, которые используются при написании bat файлов, так сказать основу. Если Вы хотите узнать больше команд для написания батников, Вы можете легко посмотреть их, набрав в командной строке (Пуск — Выполнить – cmd) команду help, но там, конечно же, не все команды, что можно использовать в батниках. Удачи в написание BAT файлов (батников).
Продолжение темы в статье — BAT файлы – Примеры батников (Часть 2)
Содержание:
- 1 Как создать файл с расширением BAT
- 2 Основные команды, синтаксис и примеры использования батников
- 3 Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat
Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.
Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.
Итак, как создать bat-файл в Windows 7/10? Очень просто. Для этого понадобится любой текстовый редактор и знание основ командной строки. Можно использовать Блокнот, а ещё лучше Notepad++, так как последний имеет подсветку синтаксиса. Создайте в редакторе новый файл, в меню «Файл» выберите «Сохранить как», дайте будущему скрипту имя, а в выпадающем списке «Тип файла» выберите «Batch file (*bat; *cmd; *nt)».
Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».
Как видите, создать файл с расширением bat не составляет сложности, есть тут, однако, свои тонкости. В командных файлах нельзя использовать перенос строк, кодировка bat-файла должна быть выставлена UTF-8, если в теле скрипта используется кириллица, кодировку нужно изменить, вставив в положенном месте команду chcp 1251.
Вместо расширения BAT можно использовать CMD, результат выполнения скрипта будет точно таким же.
Основные команды, синтаксис и примеры использования батников
Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда. Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.
Открываем пустой батник и вставляем в него такие команды:
start "" "C:/Program Files/Google/Chrome/Application/chrome.exe" timeout /t 05 start "" "C:/Program Files/Mozilla Firefox/firefox.exe" timeout /t 05 start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"
Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.
При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:
start /b "" "путь"
Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.
start /b "" "путь" pause
Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:
@echo off chcp 1251 echo "Вы действительно хотите выключить компьютер?" pause shutdown /s /t 0
Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.
Если вместо русского текста при выполнении команды вы увидите крякозябры, попробуйте преобразовать файл скрипта в ANSI.
Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:
del /A /F /Q "D:/data"
А можно и так:
forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"
В отличие от первой, вторая команда удаляет файлы рекурсивно, то есть в папке data будут удалены все файлы плюс те, которые лежат во вложенных каталогах.
А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:
robocopy C:/data D:/backup /e pause
Запустив такой батник на исполнение, вы скопируете все содержимое папки data в папку backup, включая вложенные каталоги, пустые и с файлами. К слову, команда robocopy имеет много параметров, позволяющих очень гибко настраивать параметры копирования.
Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat
Теперь вы знаете как создавать батники и имеете некое общее представление о языке интерпретатора CMD. Это были основы, теперь пришла пора познакомиться с некоторыми полезными особенностями работы с bat-файлами. Известно, что для выполнения некоторых действий программам нужны права администратора. Понадобиться они могут и батникам. Самый очевидный способ запустить скрипт от имени администратора, это кликнуть по нему правой кнопкой мыши и выбрать в контекстном меню соответствующую опцию.
Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.
Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.
И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.
Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом VВS, который будет запускать ваш батник в скрытом режиме. Текст скрипта приведен ниже, сохраните его в файл hidden.vbs, предварительно заменив путь во второй строчке кода D:/sсript.bat путём к вашему батнику.
Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "D:script.bat" & Chr(34), 0 Set WshShell = Nothing
Есть также и другие варианты, например, использование утилиты Hidden Start, позволяющей запускать исполняемые и пакетные файлы в скрытом режиме, в том числе без приглашения UAC.
А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.
Download Article
Download Article
This wikiHow teaches you how to write and save a basic batch file on a Windows computer. A batch file contains a series of DOS (Windows language) commands, and is commonly written to automate frequently performed tasks such as moving files. You shouldn’t have to download any fancy editors to create a batch file—the Windows-standard Notepad program is more than sufficient.
-
1
Open Notepad. Notepad allows you to create code as a text file and then save it when you’re done as a batch file. You can open Notepad by opening Start
, typing in Notepad, and clicking the blue Notepad app icon at the top of the menu.
- Notepad is commonly used to convert text files into batch files, but you can write your batch file’s text virtually anywhere.
-
2
Learn some basic batch commands. Batch files run a series of DOS commands, so the commands that you can use are similar to DOS commands. Some of the more important ones include:
- ECHO — Displays text on the screen
- @ECHO OFF — Hides the text that is normally output
- START — Run a file with its default application
- REM — Inserts a comment line in the program
- MKDIR/RMDIR — Create and remove directories
- DEL — Deletes a file or files
- COPY — Copy a file or files
- XCOPY — Allows you to copy files with extra options
- FOR/IN/DO — This command lets you specify files.
-
TITLE— Edit the title of the window.
[1]
Advertisement
-
3
Write a program to create a directory. One of the easiest ways to learn how to create batch files is to focus on doing basic tasks first. For example, you can use a batch file to quickly create multiple directories:[2]
MKDIR c:example1 MKDIR c:example2
-
4
Write the code to make a basic backup program. Batch files are great for running multiple commands, especially if you configure it to be able to run multiple times. With the XCOPY command, you can make a batch file that copies files from select folders to a backup folder, only overwriting files that have been updated since the last copy:
@ECHO OFF XCOPY c:original c:backupfolder /m /e /y
- This copies over files from the folder «original» to the folder «backupfolder». You can replace these with the paths to the folders you want. /m specifies that only updated files will be copied, /e specifies that all subdirectories in the listed directory will be copied, and /y keeps the confirmation message appearing every time a file is overwritten.
-
5
Write a more advanced backup program. While simply copying the files from one folder to another is nice, what if you want to do a little sorting at the same time? That’s where the FOR/IN/DO command comes in. You can use that command to tell a file where to go depending on the extension:
@ECHO OFF cd c:source REM This is the location of the files that you want to sort FOR %%f IN (*.doc *.txt) DO XCOPY c:source"%%f" c:text /m /y REM This moves any files with a .doc or REM .txt extension from c:source to c:text REM %%f is a variable FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:source"%%f" c:images /m /y REM This moves any files with a .jpg, .png, REM or .bmp extension from c:source to c:images
-
6
Display some text. If you want to know what is happening in your batch file but don’t want to see all the commands, you could program the batch file to print some text that explains what the batch file does. You can print text with ECHO. For example:
@ECHO OFF MKDIR c:example1 ECHO Created directory example1
- You can change the color of the output with COLOR bf, where b is the background and f is the foreground color, both a hexadecimal number. Following colors are possible:
Number Color Number Color 0 black
8
dark grey
1 dark blue
9
blue
2 dark green
a
green
3 dark turquoise
b
turquoise
4 dark red
c
red
5 dark magenta
d
magenta
6 dark yellow
e
yellow
7 light grey
f
white
- For example, red text on a dark green background would be displayed with
- You need run the batch file from the command line to see the text, because else the window will close too fast to actually read the text you printed.
- You can change the color of the output with COLOR bf, where b is the background and f is the foreground color, both a hexadecimal number. Following colors are possible:
-
7
Experiment with different batch commands. If you want inspiration, you can check out the sample batch text at the end of this article.
Advertisement
-
1
Finish entering your batch file’s text. Once you’ve completed and proofread your batch file, you can proceed with saving it as an executable file.
-
2
Click File. It’s in the top-left corner of the Notepad window. A drop-down menu will appear.
-
3
Click Save As…. This option is in the File drop-down menu. Clicking it prompts the Save As window to open.
-
4
Enter a name and the «.bat» extension. In the «File name» text box, type in whatever you want to name your program followed by .bat.
- For a program named «Backup», for example, you’d type in Backup.bat here.
-
5
Click the «Save as type» drop-down box. You’ll find it near the bottom of the Save As window. A drop-down menu will appear.
-
6
Click All Files. It’s in the drop-down menu. This will allow your file to be saved as whatever its extension is (in this case, «.bat»).
-
7
Select a save location. Click a folder on the left side of the window (e.g., Desktop) to do so.
-
8
Click Save. It’s in the bottom-right corner of the Save As window. The window will close.
-
9
Close your Notepad file. It will be saved as a batch file in your selected location.
-
10
Edit the batch file’s contents. At any time, you can right-click your batch file and click Edit in the resulting drop-down menu. This will open the batch file as a Notepad document; at this point, you can make any changes and then save the file by pressing Ctrl+S.
- The changes will immediately be reflected when you run the batch file.
Advertisement
Sample Batch File
Add New Question
-
Question
How can I run multiple batch files?
Open multiple files at once. But if you really wanted to, you can open other batch files within a batch file as such: start «c:UsersXx_balzeitmichael_xXDocuments» random.bat.
-
Question
How do I open images using a batch file?
David Langr
Community Answer
You can do so by typing the following command: start «C:Pathpicture.jpg».
-
Question
How do I create a batch file?
Arsalan Kazmi
Community Answer
Enter the code in Notepad and then go to File > Save As, click File Type, set it to All Files, then in the Name box, enter name.bat, where ‘name’ is the name of your batch file.
See more answers
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You will have to use quotes if you want to open a directory or file with spaces in its name (e.g., start "C:Documents and Settings").
-
You can use third-party editors such as Notepad++ to edit your batch file, but for the most part, these are a waste of time when writing simple batch files.
-
Some commands (such as ipconfig) will need administrative permissions to work. You can right-click the file and then click «Run as Administrator» to grant this permission if you’re on an administrator account.
Thanks for submitting a tip for review!
Advertisement
-
Depending on the commands you use, batch files can be dangerous. Make sure that none of your code runs the risk of performing an undesirable task (e.g., deleting files or crashing your computer).
Advertisement
About This Article
Article SummaryX
1. Learn basic batch commands.
2. Open Notepad.
3. Write your program.
4. Go to File > Save As.
5. Type a name for the file that ends with «.bat»
6. Select All Files from the «Save as type» menu.
7. Click Save.
Did this summary help you?
Thanks to all authors for creating a page that has been read 2,923,842 times.
Is this article up to date?
Download Article
Download Article
This wikiHow teaches you how to write and save a basic batch file on a Windows computer. A batch file contains a series of DOS (Windows language) commands, and is commonly written to automate frequently performed tasks such as moving files. You shouldn’t have to download any fancy editors to create a batch file—the Windows-standard Notepad program is more than sufficient.
-
1
Open Notepad. Notepad allows you to create code as a text file and then save it when you’re done as a batch file. You can open Notepad by opening Start
, typing in Notepad, and clicking the blue Notepad app icon at the top of the menu.
- Notepad is commonly used to convert text files into batch files, but you can write your batch file’s text virtually anywhere.
-
2
Learn some basic batch commands. Batch files run a series of DOS commands, so the commands that you can use are similar to DOS commands. Some of the more important ones include:
- ECHO — Displays text on the screen
- @ECHO OFF — Hides the text that is normally output
- START — Run a file with its default application
- REM — Inserts a comment line in the program
- MKDIR/RMDIR — Create and remove directories
- DEL — Deletes a file or files
- COPY — Copy a file or files
- XCOPY — Allows you to copy files with extra options
- FOR/IN/DO — This command lets you specify files.
-
TITLE— Edit the title of the window.
[1]
Advertisement
-
3
Write a program to create a directory. One of the easiest ways to learn how to create batch files is to focus on doing basic tasks first. For example, you can use a batch file to quickly create multiple directories:[2]
MKDIR c:example1 MKDIR c:example2
-
4
Write the code to make a basic backup program. Batch files are great for running multiple commands, especially if you configure it to be able to run multiple times. With the XCOPY command, you can make a batch file that copies files from select folders to a backup folder, only overwriting files that have been updated since the last copy:
@ECHO OFF XCOPY c:original c:backupfolder /m /e /y
- This copies over files from the folder «original» to the folder «backupfolder». You can replace these with the paths to the folders you want. /m specifies that only updated files will be copied, /e specifies that all subdirectories in the listed directory will be copied, and /y keeps the confirmation message appearing every time a file is overwritten.
-
5
Write a more advanced backup program. While simply copying the files from one folder to another is nice, what if you want to do a little sorting at the same time? That’s where the FOR/IN/DO command comes in. You can use that command to tell a file where to go depending on the extension:
@ECHO OFF cd c:source REM This is the location of the files that you want to sort FOR %%f IN (*.doc *.txt) DO XCOPY c:source"%%f" c:text /m /y REM This moves any files with a .doc or REM .txt extension from c:source to c:text REM %%f is a variable FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:source"%%f" c:images /m /y REM This moves any files with a .jpg, .png, REM or .bmp extension from c:source to c:images
-
6
Display some text. If you want to know what is happening in your batch file but don’t want to see all the commands, you could program the batch file to print some text that explains what the batch file does. You can print text with ECHO. For example:
@ECHO OFF MKDIR c:example1 ECHO Created directory example1
- You can change the color of the output with COLOR bf, where b is the background and f is the foreground color, both a hexadecimal number. Following colors are possible:
Number Color Number Color 0 black
8
dark grey
1 dark blue
9
blue
2 dark green
a
green
3 dark turquoise
b
turquoise
4 dark red
c
red
5 dark magenta
d
magenta
6 dark yellow
e
yellow
7 light grey
f
white
- For example, red text on a dark green background would be displayed with
- You need run the batch file from the command line to see the text, because else the window will close too fast to actually read the text you printed.
- You can change the color of the output with COLOR bf, where b is the background and f is the foreground color, both a hexadecimal number. Following colors are possible:
-
7
Experiment with different batch commands. If you want inspiration, you can check out the sample batch text at the end of this article.
Advertisement
-
1
Finish entering your batch file’s text. Once you’ve completed and proofread your batch file, you can proceed with saving it as an executable file.
-
2
Click File. It’s in the top-left corner of the Notepad window. A drop-down menu will appear.
-
3
Click Save As…. This option is in the File drop-down menu. Clicking it prompts the Save As window to open.
-
4
Enter a name and the «.bat» extension. In the «File name» text box, type in whatever you want to name your program followed by .bat.
- For a program named «Backup», for example, you’d type in Backup.bat here.
-
5
Click the «Save as type» drop-down box. You’ll find it near the bottom of the Save As window. A drop-down menu will appear.
-
6
Click All Files. It’s in the drop-down menu. This will allow your file to be saved as whatever its extension is (in this case, «.bat»).
-
7
Select a save location. Click a folder on the left side of the window (e.g., Desktop) to do so.
-
8
Click Save. It’s in the bottom-right corner of the Save As window. The window will close.
-
9
Close your Notepad file. It will be saved as a batch file in your selected location.
-
10
Edit the batch file’s contents. At any time, you can right-click your batch file and click Edit in the resulting drop-down menu. This will open the batch file as a Notepad document; at this point, you can make any changes and then save the file by pressing Ctrl+S.
- The changes will immediately be reflected when you run the batch file.
Advertisement
Sample Batch File
Add New Question
-
Question
How can I run multiple batch files?
Open multiple files at once. But if you really wanted to, you can open other batch files within a batch file as such: start «c:UsersXx_balzeitmichael_xXDocuments» random.bat.
-
Question
How do I open images using a batch file?
David Langr
Community Answer
You can do so by typing the following command: start «C:Pathpicture.jpg».
-
Question
How do I create a batch file?
Arsalan Kazmi
Community Answer
Enter the code in Notepad and then go to File > Save As, click File Type, set it to All Files, then in the Name box, enter name.bat, where ‘name’ is the name of your batch file.
See more answers
Ask a Question
200 characters left
Include your email address to get a message when this question is answered.
Submit
Advertisement
-
You will have to use quotes if you want to open a directory or file with spaces in its name (e.g., start "C:Documents and Settings").
-
You can use third-party editors such as Notepad++ to edit your batch file, but for the most part, these are a waste of time when writing simple batch files.
-
Some commands (such as ipconfig) will need administrative permissions to work. You can right-click the file and then click «Run as Administrator» to grant this permission if you’re on an administrator account.
Thanks for submitting a tip for review!
Advertisement
-
Depending on the commands you use, batch files can be dangerous. Make sure that none of your code runs the risk of performing an undesirable task (e.g., deleting files or crashing your computer).
Advertisement
About This Article
Article SummaryX
1. Learn basic batch commands.
2. Open Notepad.
3. Write your program.
4. Go to File > Save As.
5. Type a name for the file that ends with «.bat»
6. Select All Files from the «Save as type» menu.
7. Click Save.
Did this summary help you?
Thanks to all authors for creating a page that has been read 2,923,842 times.