Команды в bat файлах: Как создать BAT-файл в Windows правильно

Содержание

Консоль в Windows или немного о BAT и командной строке

Привет, друзья.

Кому посчастливилось родиться в 80-ых годах (или раньше) и сравнительно рано заиметь компьютер, прекрасно знают про DOS. Пусть в нём и были удобные файл-менеджеры, вроде Norton Commander, или горячо мною любимый DOS Navigator (пиратский, конечно), консолью пользоваться приходилось. Кто не знает, это такой чёрный экран с текстом. Всё управление осуществлялось посредством ввода специальных команд. Сейчас в Windows для всего существуют привычные окошки. Но командную строку выпиливать не стали.


Любители Линукса с консолью тоже знакомы. Остальные могут задаться вопросом: нафига она нужна? Так и есть, не нужна, если возникают подобные вопросы. Пост для тех, кто хочет. Рассмотрим несколько примочек стандартного cmd.exe, вызываемого при запуске bat-файла.

*.bat — пакетный файл, содержит последовательность команд. Выполняется с помощью интерпретатора командной строки — cmd. exe сейчас или command.com во времена DOS.

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

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

Команда pause

Просто выводит сообщение о необходимости нажать любую клавишу для продолжения и ожидает нажатие клавиши. Команда очень полезна, когда требуется что-то выполнить и не закрывать консоль после этого. Иначе говоря, можно видеть результат работы команд.

echo Hello!
pause

Команда @echo off

Многие батники начинаются с этой строки. Проиллюстрировать, что делает программа, проще всего на таком батнике:

@echo off
echo Hello
pause

Если первой строки нет, будет тот вариант, что слева. При наличии этой строки — вариант справа. Получается,

@echo off препятствует выводу исполняемой команды. Результаты работы в консоли отображаются.

Команда cls

Всё, что делается — очищается консоль.

echo Hello!
pause

Разделитель команд

Для выполнения сразу нескольких команд можно использовать & — символ амперсанда.

color 2 & cls & pause

Меняет цвет шрифта на зелёный, очищает экран и выводит надпись о необходимости нажатия клавиши для продолжения работы.

Переключить диск на другой

Просто пишем букву диска и ставим двоеточие:

d:

Текущий диск меняется на D.

Вывод текущего каталога, смена каталога

Команда cd без параметров выводит полный путь к тому месту, где мы находимся. Для смены нужно добавить параметр с путём:

cd c:\windows

Меняет путь на системную директорию Windows. Важно! Команда работает только в путями диска, на котором находимся в данный момент. Если нужно использовать файл с другого диска, для начала переключитесь на него (см. предыдущую команду).

Вывод в файл

Есть и такая возможность. Используйте символ > с указанием имени файла, в который надо скопировать результат работы команды.

dir > 1.txt

В файл 1.txt будет записан листинг (вывод) команды dir, которая выводит список всех папок и файлов в текущем каталоге.

Установка переменных

Для этого нужно использовать команду set, а в качестве параметра указать имя переменной и сразу, без пробелов, знак равно и значение. Для доступа к установленной переменной в программе используется её имя, обрамлённое знаками процента. Пример:

@echo off
set a=Hello, World!
echo %a%
pause

Как назначить переменной текущий путь

Путь к текущему каталогу содержится в особой переменной %~dp0.

@echo off
set current_path=%~dp0
echo %current_path%
pause

SetLocal и параметры

В начало bat-файла обычно добавляются параметры для изменения значения переменных среды выполнения.

  1. EnableExtensions — включение расширенной обработки команд. В частности, нужно для обработки флага /r.
  2. EnableDelayedExpansion — для корректного изменения переменных. Установленные переменные далее, в циклах, не меняются. Этот флаг позволяет изменить поведение, но для доступа к переменным нужно использовать не знаки процента %var%, а восклицательные знаки !var!.
SetLocal EnableExtensions EnableDelayedExpansion

Получение определённых файлов из каталога и его подкаталогов

Выше упоминалась команда dir, которая выводила содержимое текущего каталога. Она может принимать в качестве пути маску для поиска, но действует, опять же, только в целевой директории. Для рекурсивного поиска существует команда for с флагом /R.

for /R . %%a IN (*.png) DO echo %%a

Команда ищет не только в указанном месте (в данном случае — символ точки — текущая директория), а так же во всех вложенных поддиректориях, файлы с расширением *. png, после чего выводит их на экран. Обратите внимание на синтаксис, знаки процента указывают

перед переменной.

Замена части строки на другую

Очень интересный синтаксис. В момент использования переменной, нужно сразу после её имени поставить двоеточие, указать ЧтоМеняем, знак равно и НаЧтоМеняем. Чтобы было ясно, пусть определена переменная a. Тогда, для замены юзается такая конструкция %a:ЧтоМеняем=НаЧтоМеняем%. Пример:

@echo off
set a=Hello, world
echo %a:Hello=Aloha%
pause

Выведет на экран надпись Aloha, world.

Вывод путей файлов относительно текущего каталога

Для этого потребуются фишки, используемые выше.

@echo off
SetLocal EnableExtensions EnableDelayedExpansion
for /R . %%a IN (*.png) DO (
    set fn=%%a
    echo !fn:%~dp0=!
)
pause

Вторая строка здесь обязательна. Без установки флага EnableDelayedExpansion переменная fn не раскроется. При отсутствии EnableExtensions работать будет, но это не точно — некоторые пользователи могут переопределить соответствующую настройку в реестре, и программа будет ругаться на флаг /R. Поэтому просто указываем оба параметра, на случай юзеров с непредвиденным поведением рук.


Пожалуй, на сегодня достаточно. Для более детальной справки по указанным программа пользуйте стандартный параметр /? например так:

for /?

В следующий раз, основываясь на полученном сегодня опыте, сделаем какую-нибудь годноту. Если нашли для себя что-то полезное, не поленитесь жмакнуть кнопочку ниже ↓ и рассказать друзьям. Может, они тоже найдут для себя что-то.

Автор публикации

2 070

не в сети 4 недели

x64 (aka andi)

Комментарии: 2893Публикации: 405Регистрация: 02-04-2009 Загрузка...

Применение команды for в bat-файлах (technet. microsoft) | windows

Команда FOR задает запуск некоторой команды для каждого файла из заданного множества. Информация для данной статьи взята с сайта Microsoft.

Работу команды for можно охарактеризовать так:
a) получение диапазона данных
b) присвоить переменной цикла for (например %%G) значение из диапазона данных
c) выполнить команду (иногда в команде участвует %%G, например, в качестве параметра)
d) выполнить шаги a), b), c), пока не будет достигнуто конечное значение из диапазона значений переменной цикла.
Очень хорошо команда for описана в справке w2k.

Синтаксис

for {%переменная | %%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]

<>Параметры

{%переменная | %%переменная}

Обязательный параметр. Замещаемый параметр. Используйте %переменная для выполнения команды for из командной строки. Используйте %%переменная для выполнения команды for в пакетном файле. В переменных учитывается регистр и они могут быть представлены буквами, например %A, %B или %C.

(множество)

Обязательный параметр. Задает один или несколько файлов, каталогов, диапазон значений или текстоваых строк, подлежащих обработке заданной командой. Скобки являются обязательными.

команда

Обязательный параметр. Задает команду, которая будет выполнена для каждого файла, каталога, диапазона значений или текстовой строки, включенной в указанный параметр (множество).

ПараметрыКоманднойСтроки

Задает параметры командной строки, которые используются с указанной командой.

/?

Отображение справки в командной строке. 

Заметки

Использование команды for
Команда for может быть использована в пакетном файле или непосредственно из командной строки.

Использование параметров командной строки пакетного файла
Перечисленные ниже атрибуты применяются к команде for.

В команде for переменная %переменная (или %%переменная) будет заменяться текстовой строкой из заданного параметра множество, пока параметр команда не обработает все файлы этого множества.

Имена параметров переменная команды for учитывают регистр буквы, они являются глобальными и одновременно может быть активно не больше 52 переменных.

Для обозначения параметра переменная можно использовать любые знаки, кроме цифр 0–9, чтобы не было конфликта с параметрами пакетных файлов %0–%9. Для простых пакетных файлов вполне достаточно обозначений с одним знаком, например %%f.

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

 

Задание множества файлов
Параметр множество может представлять группу файлов или несколько групп файлов.

Для задания групп файлов можно использовать подстановочные знаки (* и ?). Следующие множества файлов являются допустимыми:
(*.doc)
(*.doc *.txt *.me)
(jan*.doc jan*.rpt feb*.doc feb*.rpt)
(ar??1991.* ap??1991.*)

Когда используется команда for, первое значение в параметре множество заменяет параметр %переменная (или %%переменная), а затем для обработки этого значения выполняется указанная команда. Это продолжается до тех пор, пока не будут обработаны все файлы (или группы файлов), которые соответствуют значению параметра множество.

Использование ключевых слов in и do
In и do не являются параметрами, но они требуются для работы команды for. Если какое-то из слов пропущено, на экран будет выведено сообщение об ошибке.

Использование дополнительных форм команды for
Если расширения командного процессора разрешены (по умолчанию), то поддерживаются следующие дополнительные формы команды for.

Только каталоги
Если параметр множество содержит подстановочные знаки (* и ?), команда, указанная в параметре команда, выполняется для каждого каталога (кроме множества файлов в указанном каталоге), совпадающего с параметром множество. Используется следующий синтаксис.
for /D {%% | %}переменная in (множество) do команда [ПараметрыКоманднойСтроки]

Рекурсивная
Проходит по дереву каталогов с корнем в [диск:]путь, выполняя инструкцию for для каждого каталога в дереве. Если после ключа /R не задан каталог, предполагается текущий каталог. Если параметр множество задан одной точкой (.), то команда просто перечислит каталоги в дереве. Используется следующий синтаксис.
for /R [[диск:]путь] {%% | %}переменная in (множество) do команда [ПараметрыКоманднойСтроки]

Итерация диапазона значений
Используйте переменную итерации для установки начального значения (НачальноеЗначение#), а затем перемещайтесь по диапазону значений, пока значение не превысит конечное значение множества (КонечноеЗначение#). /L выполнит итерацию, сравнив параметр НачальноеЗначение# с параметром КонечноеЗначение#. Если параметрНачальноеЗначение# меньше параметра КонечноеЗначение#, то выполняется команда. Когда переменная итерации превысит параметр КонечноеЗначение#, командная оболочка покидает цикл. Также можно использовать отрицательный параметр шаг# для перемещения в диапазоне убывающих значений. Например, (1,1,5) создает последовательность «1 2 3 4 5», а (5,-1,1) создает последовательность «5 4 3 2 1». Используется следующий синтаксис.
for /L {%% | %}переменная in (НачальноеЗначение#,шаг#,КонечноеЗначение#) do команда [ПараметрыКоманднойСтроки]

Итерация и разбор файлов
Разбор файлов следует использовать для обработки вывода команды, строк и содержимого файла. Используйте переменные итерации для определения содержимого или строк, которые требуется проверить. Параметр КлючевыеСловаРазбора используется для изменения разбора. Используйте параметр маркера КлючевыеСловаРазбора для указания маркеров, которые воспринимаются как переменные итерации. Примечание. Без параметра маркера ключ /F проверяет только первый маркер.

Разбор файлов состоит в чтении вывода, строки или содержимого файла, разбиении его на отдельные строки текста и разборе каждой строки на ноль или маркеры. Цикл программы for затем вызывается с переменной итерации, установленной в маркер. По умолчанию /F передает первый отделенный пробелом элемент из каждой строки каждого файла. Пустые строки пропускаются. Используется также другой синтаксис.
for /F ["КлючевыеСловаРазбора"] {%% | %}переменная lin (МножествоИменФайлов) do команда [ПараметрыКоманднойСтроки]
for /F ["КлючевыеСловаРазбора"] {%% | %}переменная in ("СимвольнаяСтрока") do команда [ПараметрыКоманднойСтроки]
for /F ["КлючевыеСловаРазбора"] {%% | %}переменная in ('команда') do команда [ПараметрыКоманднойСтроки]

Аргумент МножествоИменФайлов задает одно или несколько имен файлов. Каждый файл открывается, считывается и обрабатывается до перехода к следующему файлу параметра МножествоИменФайлов. Чтобы переопределить стандартное поведение разбора, укажите параметр "КлючевыеСловаРазбора". Это строка, заключенная в кавычки, которая содержит одно или несколько ключевых слов для указания различных режимов разбора.

Если используется параметр usebackq, используйте один из приведенных ниже синтаксисов:
for /F ["usebackqКлючевыеСловаРазбора"] {%% | %}переменная in ("МножествоИменФайлов") do команда [ПараметрыКоманднойСтроки]
for /F ["usebackqКлючевыеСловаРазбора"] {%% | %}переменная in ('СимвольнаяСтрока') do команда [ПараметрыКоманднойСтроки]
for /F ["usebackqКлючевыеСловаРазбора"] {%% | %}переменная in ('команда') do команда [ПараметрыКоманднойСтроки]

В приведенной ниже таблице перечислены ключевые слова разбора, которые используются для параметра КлючевыеСловаРазбора.

eol=c

Задает символ конца строки (только один символ).

skip=N

Задает число строк, пропускаемых в начале файла.

delims=xxx

Задает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.

tokens=X,Y,M-N

Задает элементы, передаваемые из каждой строки в тело цикла for при каждой итерации. В результате размещаются дополнительные имена переменных. Форма M-N задает диапазон, указывающий элементы с M-го по N-ый. Если последним символом строки tokens= является звездочка (*), то размещается дополнительная переменная, в которую помещается остаток строки после разбора последнего элемента.

usebackq

Задает возможность использования кавычек для имен файлов в параметре МножествоИменФайлов. Задает исполнение строки, заключенной в обратные кавычки, как команды, а строки в одиночных кавычках — как команды в символьной строке.

Подстановка переменных
Были расширены модификаторы подстановок для ссылок на переменные в for. Приведенная ниже таблица перечисляет варианты синтаксических конструкций (на примере переменной I).

%~I

Расширение %I, которое удаляет окружающие кавычки ("").

%~fI

Расширение %I до полного имени пути.

%~dI

Замена %I именем диска.

%~pI

Замена %I на путь.

%~nI

Замена %I одним именем файла.

%~xI

Замена %I расширением имени файла.

%~sI

Замена путем, содержащим только короткие имена.

%~aI

Замена %I атрибутами файла.

%~tI

Замена %I временем модификации файла.

%~zI

Замена %I размером файла.

%~$PATH:I

Поиск в каталогах, перечисленных в переменной среды PATH, и замена %I полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

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

%~dpI

Замена %I именем диска и путем.

%~nxI

Замена %I именем файла и расширением.

%~fsI

Замена %I полным именем пути с короткими именами.

%~dp$PATH:I

Поиск в каталогах, перечисленных в переменной среды PATH, и замена %I именем диска и путем первого найденного файла.

%~ftzaI

Замена %I строкой, аналогичной результату работы команды dir.

В приведенных выше примерах %I и PATH могут быть заменены другими допустимыми значениями. Допустимое имя переменной for прекращает синтаксис %~.

Использование прописных букв в именах переменных, например %I, может улучшить восприятие программы и позволит избежать недоразумений с модификаторами, в которых строчные и прописные буквы не различаются.

Разбор строки
Конструкция for /F может быть использована непосредственно для строки. Для этого поместите параметр МножествоИменФайлов между скобками в одиночные кавычки ('МножествоИменФайлов'). Параметр МножествоИменФайлов будет воспринят как одиночная строка ввода из файла и будет разобран.

Разбор вывода
Команду for /F можно использовать для разбора вывода команды. Для этого поместите параметр МножествоИменФайлов между скобками в обратные кавычки. Он будет воспринят как командная строка, которая передается дочернему интерпретатору командной строки Cmd.exe, а результаты работы команды помещаются в памяти и разбираются, как если бы они являлись файлом.

[Примеры]

В пакетных файлах используется следующий синтаксис для команды for:
for %%переменная in (множество) do команда [ПараметрыКоманднойСтроки]

Чтобы отобразить содержимое всех файлов, имеющих разрешение DOC или TXT, в текущем каталоге с помощью заменяемой переменной %f, введите следующую команду:
for %%f in (*.doc *.txt) do type %%f

В предыдущем примере каждый файл с расширением .doc или .txt в текущем каталоге будет подставляться вместо переменной %f, пока не будет выведено содержимое всех файлов. Для использования этой команды в пакетном файле нужно заменить каждую команду %f на %%а. В противном случае переменная игнорируется и выводится сообщение об ошибке.

Чтобы произвести разбор файла, игнорируя комментарии, можно использовать следующую команду:
for /F "eol=; tokens=2,3* delims=," %i in (myfile.txt) do @echo %i %j %k

Данная команда производит разбор каждой строки в файле Myfile. txt, игнорируя строки, начинающиеся с точки с запятой, и передает второй и третий элементы из каждой строки в тело цикла команды FOR. Элементы разделяются запятыми или пробелами. Тело инструкции FOR использует %i для получения второго элемента, %j для получения третьего элемента и %k для получения оставшихся элементов в строке. Если имена файлов содержат пробелы, их следует заключать в кавычки (например, "ИмяФайла"). Для использования кавычек необходима команда usebackq. В противном случае кавычки рассматриваются как определение символьной строки для разбора.

Переменная %i объявлена явно в инструкции FOR. Переменные %j и %k объявлены явно при использовании tokens=. С помощью tokens= можно указать до 26 элементов, если это не вызовет попытки объявить переменную с именем, большим буквы "z" или "Z".

Для разбора вывода команды с помощью помещения параметра МножествоИменФайлов в скобки можно использовать следующую команду (пример выводит список имен всех переменных окружения):
for /F "usebackq delims==" %i IN (`set`) DO @echo %i

Ищем в директориях файлы с расширением html содержащие строку google:
for /R %%f in (*. html) do @findstr /m "google" %%f

FOR /L
выполнить команду для диапазона чисел
Синтаксис
FOR /L %%parameter IN (start,step,end) DO command
Где
   start      первое число (включительно)
   step       инкремент числа для каждого шага
   end        последнее число (включительно)
   command    выполняемая команда, здесь же указываются параметры командной строки для неё
   %%parameter изменяемый при каждой прокрутке цикла параметр (переменная цикла)

Внутри командного файла в качестве параметра используйте %%G, а в командной строке %G (такие уж Микрософт придумал правила). (20,-5,10) будет генерить последовательность 20 15 10, а (1,1,5) последовательность 1 2 3 4 5.

Пример
FOR /L %%G IN (1,1,5) DO echo %%G

Можно использовать нечисловой список, например:
FOR %%G IN (Sun Mon Tue Wed Thur Fri Sat) DO echo %%G

[Другие команды for]

FOR - цикл по всем файлам в одной директории (исключая её подкаталоги)
FOR /R - цикл по всем файлам, включая подкаталоги
FOR /D - цикл через несколько папок
FOR /F - цикл через слова в текстовом файле или через вывод команды

syntax-FOR-Files
     FOR %%parameter IN (set) DO command
syntax-FOR-Files-Rooted at Path
     FOR /R [[drive:]path] %%parameter IN (set) DO command
syntax-FOR-Folders
     FOR /D %%parameter IN (folder_set) DO command
syntax-FOR-List of numbers
     FOR /L %%parameter IN (start,step,end) DO command
syntax-FOR-File contents
     FOR /F ["options"] %%parameter IN (filenameset) DO command
     FOR /F ["options"] %%parameter IN ("Text string to process") DO command
syntax-FOR-Command Results
     FOR /F ["options"] %%parameter IN ('command to process') DO command

[Связанные с for команды]

FORFILES (w2003 Server) - выборка списка файлов из директории для отображения или использования при обработке в bat-файле
GOTO метка - прямой переход на строку в командном файле, помеченную строкой :метка
IF - условное выполнение команды

[Equivalent Linux BASH commands]

for - Expand words, and execute commands
case - Conditionally perform a command
eval - Evaluate several commands/arguments
if - Conditionally perform a command
gawk - Find and Replace text within file(s)
m4 - Macro processor
until - Execute commands (until error)
while - Execute commands 

[Условные обозначения форматирования]

Курсив

Сведения, вводимые пользователем

Полужирный шрифт

Элементы, вводимые без изменений

Многоточие (. ..)

Параметр может быть введен в командной строке несколько раз

В квадратных скобках ([])

Необязательные элементы

В фигурных скобках ({}), варианты, разделенные вертикальной линией (|). Пример: {even|odd}

Набор вариантов, из которых необходимо выбрать один

Courier font

Программа или выходные данные

[Ссылки]

1. Практические приемы программирования в bat-файлах.

Как создать BAT файл в Windows 7

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

Самым примитивным способом автоматизации любого действия является создание файла с расширением .BAT, в простонародье именуемого как «батник». Это очень простенький исполняемый файл, который при запуске выполняет заранее заданные действия, после чего закрывается, ожидая следующего запуска (если он многоразовый). Пользователь с помощью специальных команд задает последовательность и количество операций, которые «батник» должен выполнить после запуска.

Как создать «батник» в операционной системе Windows 7

Сделать этот файлик может любой пользователь на компьютере, который имеет достаточно прав для создания и сохранения файлов. На счет выполнения немного сложнее — выполнение «батника» должно быть разрешено как и отдельно взятому пользователю, так и операционной системе в целом (запрет иногда накладывается в целях безопасности, ведь исполняемые файлы не всегда создаются для благих дел).

Будьте внимательны! Никогда не запускайте на компьютере файлы с расширением .BAT, скачанные из неизвестного или подозрительного ресурса, а также не используйте при создании такого файла код, в котором вы не уверены. Исполняемые файлы такого типа умеют шифровать, переименовывать или удалять файлы, а также форматировать целые разделы.

Способ 1: использование расширенного текстового редактора Notepad++

Программа Notepad++ является аналогом стандартного Блокнота в операционной системе Windows, значительно превосходя его в количестве и тонкости настроек.

  1. Файл можно создать на любом диске или в папке. Для примера будет использован рабочий стол. На свободном месте нажмите правую кнопку мыши, наведите курсор на надпись «Создать», в выпавшем сбоку окошке щелчком левой кнопки мыши выберите «Текстовый документ»
  2. На рабочем столе появится текстовый файл, который желательно назвать так, как в итоге будет называться наш батник. После того, как имя для него определено, нажмите на документе левой кнопкой мыши, и в контекстном меню выберите пункт «Edit with Notepad++». Созданный нами файл откроется в расширенном редакторе.
  3. Очень важна роль кодировки, в которой будет исполнена команда. По умолчанию используется кодировка ANSI, которую нужно заменить на OEM 866. В шапке программы нажимаем на кнопку «Кодировки», нажимаем на аналогичную кнопку в выпавшем меню, затем выбираем пункт «Кириллица» и нажимаем на «OEM 866». Как подтверждение смены кодировки справа внизу в окне появится соответствующая запись.
  4. Тот код, который вы уже нашли в интернете или написали сами для выполнения определенной задачи, необходимо просто скопировать и вставить в сам документ. На примере ниже будет использована элементарная команда:

    shutdown.exe -r -t 00

    После запуска этот батник перезагрузит компьютер. Сама команда означает запуск перезагрузки, а цифры 00 — задержку ее выполнения в секундах (в данном случае она отсутствует, то есть перезапуск выполнится незамедлительно).

  5. Когда команда будет записана в поле, наступает самый важный момент — превращение обычного документа с текстом в исполняемый. Для этого в окошке Notepad++ слева вверху выберите пункт «Файл», затем нажмите на «Сохранить как».
  6. Появится стандартное окно Проводника, позволяющее задать два основных параметра для сохранения — место и имя самого файла. Если с местом мы уже определились (по умолчанию будет предложен Рабочий стол), то именно в названии заключается последний шаг. Из выпадающего меню выберите пункт «Batch file».

    К уже заданному ранее слову или фразе без пробела допишется «.BAT», и получится так, как на скриншоте ниже.

  7. После нажатия на кнопку «OK» в предыдущем окне, на рабочем столе появится новый файл, который будет выглядеть как белый прямоугольник с двумя шестеренками.

Способ 2: использование стандартного текстового редактора Блокнот

Он обладает элементарными настройками, которых вполне хватает для создания самых простых «батников». Инструкция абсолютно аналогична предыдущему способу, программы лишь немного отличаются в интерфейсе.

  1. На рабочем столе двойным щелчком откройте ранее созданный текстовый документ — от откроется в стандартном редакторе.
  2. Команду, которую использовали ранее, скопируйте и вставьте в пустое поле редактора.
  3. В окошке редактора слева вверху нажмите на кнопку «Файл»«Сохранить как…». Откроется окно Проводника, в котором необходимо указать место сохранения конечно файла. Здесь отсутствует способ задания необходимого расширения с помощью пункта в выпадающем меню, поэтому просто нужно дописать к названию «.BAT» без кавычек, чтобы получилось так, как на скриншоте ниже.

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

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

Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ Набор

| Документы Microsoft

  • 4 минуты на чтение

В этой статье

Отображает, устанавливает или удаляет переменные среды cmd.exe. Если используется без параметров, set отображает текущие настройки переменных среды.

Примечание

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

Команда set также может запускаться из консоли восстановления Windows с использованием других параметров. Дополнительные сведения см. В разделе Среда восстановления Windows (WinRE).

Синтаксис

  установить [ = []]
установить [/ p]  = []
set / a <переменная> = <выражение>
  

Параметры

Параметр Описание
<переменная> Задает переменную среды, которую нужно установить или изменить.
<строка> Задает строку для связи с указанной переменной среды.
/ п Устанавливает значение <переменная> для строки ввода, введенной пользователем.
<строка подсказки> Задает сообщение, предлагающее пользователю ввести данные. ) или заключаться в кавычки при использовании в (например, «StringConpting & Symbol» ).Если вы используете кавычки, чтобы заключить строку, содержащую один из специальных символов, кавычки устанавливаются как часть значения переменной среды.

  • Используйте переменные среды для управления поведением некоторых командных файлов и программ, а также для управления способом отображения и работы Windows и подсистемы MS-DOS. Команда set часто используется в файле Autoexec.nt для установки переменных среды.

  • Если вы используете команду set без каких-либо параметров, отображаются текущие настройки среды.Эти параметры обычно включают переменные среды COMSPEC и PATH , которые используются для поиска программ на диске. Две другие переменные среды, используемые Windows, - это PROMPT и DIRCMD .

  • Если вы указываете значения для <переменная> и <строка> , указанное значение <переменная> добавляется в среду, и <строка> связывается с этой переменной. Если переменная уже существует в среде, новое строковое значение заменяет старое строковое значение.

  • Если вы укажете только переменную и знак равенства (без ) для команды set , значение , связанное с переменной, будет очищено (как если бы переменной там нет).

  • При использовании параметра / a поддерживаются следующие операторы в порядке убывания приоритета:

    Оператор Операция выполнена
    () Группировка
    ! ~ - Одинарный
    * /% Арифметика
    + - Арифметика
    << >> Логический сдвиг
    и Побитовое И
    ^ Побитовое исключающее ИЛИ
    = * = / =% = + = - = & = ^ = = << = >> =
    , Разделитель выражений
  • Если вы используете логические ( && или || ) или модульные (% ) операторы, заключите строку выражения в кавычки. Любые нечисловые строки в выражении считаются именами переменных среды, и их значения перед обработкой преобразуются в числа. Если вы указываете имя переменной среды, которая не определена в текущей среде, назначается нулевое значение, что позволяет выполнять арифметические операции со значениями переменных среды без использования% для получения значения.

  • Если запустить set / a из командной строки вне командного сценария, отобразится окончательное значение выражения.

  • Числовые значения являются десятичными числами, если перед ними не стоит префикс 0 × для шестнадцатеричных чисел или 0 для восьмеричных чисел. Следовательно, 0 × 12 - это то же самое, что 18, то есть 022.

  • Поддержка отложенного расширения переменных среды отключена по умолчанию, но вы можете включить или отключить ее с помощью команды cmd / v .

  • При создании командных файлов вы можете использовать set для создания переменных, а затем использовать их так же, как вы использовали бы нумерованные переменные от % 0 до % 9 . 1

    Команда set присваивает все, что следует за знаком равенства (=), значению переменной.& 1

    Чтобы установить переменную среды с именем INCLUDE таким образом, чтобы с ней была связана строка c: \ directory , введите:

      установить include = c: \ directory
      

    Затем вы можете использовать строку c: \ directory в пакетных файлах, заключив имя INCLUDE со знаками процента (% ). Например, вы можете использовать dir% include% в пакетном файле, чтобы отобразить содержимое каталога, связанного с переменной среды INCLUDE.После обработки этой команды строка c: \ directory заменяет % include% .

    Чтобы использовать команду set в пакетной программе для добавления нового каталога в переменную среды PATH , введите:

      @ эхо выкл.
    rem ADDPATH.BAT добавляет новый каталог
    rem в переменную окружения path. 
    установить путь =% 1;% путь%
    набор
      

    Чтобы отобразить список всех переменных среды, начинающихся с буквы P , введите:

      комплект р
      

    Дополнительные ссылки

    4.3.2 Команды пакетного файла

    подобно Макросы, которые обсуждались в 4.2.2 Лабораторная работа: Макросы , пакетные файлы автоматизируют задачи. В этом разделе дается обзор партии files и охватывает некоторые команды, которые можно использовать в пакетных файлах.

    Пакетные файлы

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

    А командный файл в Windows или "сценарий оболочки" в UNIX, выполняет аналогичную функцию. Он состоит из последовательности команд для запускать программы и манипулировать файлами. Можно построить полностью автономные командные файлы, которые не требуют взаимодействия с пользователем запустить, но это не обязательно. Командная строка DOS процессор, выполняющий командные файлы, действительно обеспечивает некоторые простые формы взаимодействия с пользователем, как вы увидите.

    А командный файл под Windows представляет собой обычный текстовый файл (не файл Word) с расширение .BAT . Пакетный файл содержит команды DOS и имена программ для выполнения. Файл также может содержать поток управление команд которые говорят командному процессору выполнить цикл (повторить определенные инструкции) или для обработки условий ошибки определенным образом.

    А Обычно командные файлы используются для написания новых команд. Например здесь это командный файл SWAP.BAT , который меняет местами два файла, переименовывая их:

    REM Вот источник SWAP file1 file2 @ECHO ВЫКЛ. REM Помните, что / предшествует переключателю.REM Используйте HELP DEL или DEL /? чтобы узнать о / Q DEL / Q ТЕМП. ПЕРЕЕХАТЬ % 1 ТЕМП. ПЕРЕЕХАТЬ % 2% 1 ПЕРЕЕХАТЬ ТЕМП.% 2

    В обозначение% 1,% 2 и т. д. относится к аргументам команды swap . Если пользователь вводит «SWAP» A.TXT B.DOC " в командную строку, то SWAP ссылается к новой команде, определенной нашим пакетным файлом, а пакетный файл выполняется, % 1 - эквивалент A.TXT, а % 2 - это эквивалент B.DOC . Также можно ввести именованные переменные в пакетный файл, например % NAME% , с помощью операторов присваивания.

    Создание пакетный файл на самом деле представляет собой тип программирования с использованием "языка" это очень ограничено. Одна необычная особенность этого языка заключается в том, что синтаксическая ошибка в одной строке не останавливает выполнение файла. Если обнаружена синтаксическая ошибка, отображается сообщение об ошибке и командный файл переходит к следующей команде. Это могло иметь непреднамеренные последствия. Как и в случае с другими типами программ, это важно тщательно протестировать командный файл, прежде чем использовать его в любом критическое приложение.

    Команды

    В Ниже приведен список функций командной строки, обычно используемых в пакетном режиме. файлы:

    rem примечание Этот обозначает все, что следует за командой rem на линии ( примечание в наш пример) в качестве комментария.

    эхо сообщение Этот команда отображает сообщение для Стандартный вывод. Команда echo также может использоваться с перенаправлением вывода для отправки сообщения в файл. Например, эхо пусковой этап третий .

    эхо. Уведомление период (. ) в конце команды echo . Это специальный вариант команды echo , который отображает пустую строку для стандартного вывода.

    @echo от Этот останавливает отображение команд в пакетном файле в стандартном Вывод. По умолчанию каждая строка текста в пакетном файле встречается командным процессором отображается в стандартный вывод.Пока это режим по умолчанию полезен для целей отладки, в результате отображается часто сбивает пользователей с толку, поэтому большинство команд, написанных как командные файлы, начинаются с @ эхо выкл .

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

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

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

    если существует имя_файла команда Этот команда оценивает текущий рабочий каталог для файла или подкаталог. В приведенном выше примере, если утверждение верно (что есть, если существует файл с именем filename ), затем команда ( команда в наш пример) выполняется. Следовательно, команда, которая читает , если существует index.html del index.html определяет если существует файл с именем index.html и, если это так, удаляет его.

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

    Пользовательские команды - Пакетный сценарий (.BAT)

    Эта команда сгенерирует пакетный сценарий (.bat) и запустит его.

    Пакетные сценарии основаны на системе исполняемых сценариев в Windows, которая восходит к старым временам DOS. Он все еще используется и весьма полезен, особенно если вы хотите запускать множество внешних программ одну за другой. Кроме того, вы можете отправить вывод одной программы для использования в качестве ввода другой.

    При запуске команды пакетного сценария из этой команды создается файл .bat; затем сценарий запускается с его рабочей папкой, установленной на текущий исходный путь.

    МультиТэги

    MultiTags - это текст в специальном формате, который будет заменен динамической информацией. Например, MultiTag $ {focusfilepath} будет заменен на полный путь к файлу, который в данный момент находится в фокусе. Команда проходит через процесс, который переводит MultiTags перед ее выполнением.

    Пути по умолчанию не цитируются, поэтому, если вам нужны кавычки вокруг пути, вы должны поместить их вокруг MultiTag, например "$ {focuspath}" .

    Подробнее о MultiTags

    Опции

    Когда вы нажимаете кнопку Option, вы получаете список параметров, которые вы можете назначить команде.

    (Этот список параметров для пакетного сценария еще не окончательно доработан)

    Командные аргументы

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

    Доступ к параметрам осуществляется с помощью MultiTags $ {param: } , где указывает, какой аргумент использовать.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *