Как написать bat скрипт

Дисклеймер

Мне 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%%%

В данной статейки мы рассмотрим такую полезную вещь как «батник». Давайте сначала дадим определение, что такое 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)

Как писать скрипты на 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!

example

Такая переменная может принимать в себя данные, которые вы передадите.
Имеется еще один интересный вид переменной, она называется переменной аргумента.
Обозначается она таким образом: %1 %2 %3...

Вход:

script Something

Вывод:

Something

example

Когда мы запускаем наш bat-файл из консоли, мы можем передать любой аргумент после его названия: script Something.
script — название нашего файла, Something — наш желаемый аргумент. Если мы попытаемся передать несколько слов (аргументов) через пробел, то у нас засчитает только первое слово. То есть каждое новое слово по сути является новым аргументом.

Вход:

script Everything will be fine…

Вывод:

Everything

Этого можно избежать следующими способами:

  1. Указать больше переменных.
  2. Обернуть текст в кавычки " "
  3. Указать символ *
Способ первый:

Я хочу передать вот этот текст: 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

example

Локальные переменные

Локальные переменные задаются в блоке от 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-файлах. Попробуйте создать другой файлик и к примеру вывести глобальную переменную на экран.

В принципе все просто.
Практика:

  1. Попробуйте написать скрипт, который будет принимать ваше имя и возраст, после выводить его на экран.
Ваше имя: Даниил
Ваш возраст: 17

Привет, Даниил, а знаю, что тебе 17 лет!
  1. Попробуйте сделать простой калькулятор, который будет только складывать числа.
Введите первое число: 12
Введите второй число: 12

Ответ: 24

Циклы

Цикл for (по умолчанию)

Данный цикл используется для повторения файлов, пример:

@echo off

for %%i in (C:folderfantasy.txt C:foldermyths.txt) do (
  copy %%i C:UsersuserDesktop
)

example
Разберем начало цикла, цикл создается с ключевого слова 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
)

example
Здесь мы уже указываем команду /r, следующим можно передать папку, которая будет считаться корневой, если не передавать директорию (C:folder) — текущая директория будет считаться корневой. Также поиск файлов будет осуществляться и в подпапках.
%%f — является переменной. В скобках ( ), можно передать файлы, по которым будет осуществляться поиск. Их может быть несколько (*.txt *.py *.bat) или можно записать ., она будет искать все файлы в целом (в подпапках тоже).

Цикл for /D

Используется для загрузки списка папок, которые являются подпапками текущей директории:

@echo off

cd C:folder

for /d %%f in (f* n*) do (
  echo %%f
)

example
В данном примере мы получим список папок в директории C:folder, которые начинаются с букв f и n. Если передать *, мы получим список всех папок находящихся в директории.

Цикл for /l

Этот цикл служит для загрузки на ряде цифр (range of numbers):

@echo off

for /l %%i in (1, 1, 10) do (
  echo %%i
)

example
В этом примере мы выведим цифры от 1 до 10.

for /l %%i in (start, step, end) do (
  echo %%i
)
  • start: Первое значение переменной
  • step: После каждого повтора (iteration) значение переменной будет прибавлять ‘step’.
  • end: Последнее значение.

…дописывается


Загрузить 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 499 раз.

    Была ли эта статья полезной?

    Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем 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.

    Содержание:

    • 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-файла в Notepad++ шаг 1

    Создание bat-файла в Notepad++ шаг 2

    Если для создания bat-файла захотите использовать Блокнот, расширение нужно присвоить вручную, а в списке «Тип файла» выбрать «Все файлы».

    Сохранение 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"
    

    kak-sozdat-bat-fail-4

    Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.

    kak-sozdat-bat-fail-5

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

    start /b "" "путь"

    kak-sozdat-bat-fail-6

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

    start /b "" "путь"
    pause
    

    kak-sozdat-bat-fail-7

    Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:

    @echo off
    chcp 1251
    echo "Вы действительно хотите выключить компьютер?"
    pause
    shutdown /s /t 0
    

    kak-sozdat-bat-fail-8

    kak-sozdat-bat-fail-9

    Поясняем. Первая команда скрывает текст самих команд, вторая – устанавливает кириллическую кодировку, третья – выводит сообщение для пользователя, четвертая – устанавливает паузу, пятая – выключает, а с ключом /r вместо /s перезагружает компьютер без традиционной задержки в одну минуту. Если не желаете церемониться с запросами и паузами, можете оставить только пятую команду.

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

    Что ещё можно делать с помощью скриптов? Много чего, например, удалять, копировать или перемещать файлы. Допустим, у вас есть некая папка data в корне диска D, содержимое которой нужно очистить одним махом. Открываем батник и вставляем в него такую команду:

    del /A /F /Q "D:/data"

    kak-sozdat-bat-fail-10

    А можно и так:

    forfiles /p "D:/data" /s /m *.* /c "cmd /c Del @path"

    kak-sozdat-bat-fail-11

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

    А вот ещё один полезный пример. Напишем скрипт, который будет создавать резервную копию содержимого одной папки и сохранять данные в другую. За копирование отвечает команда robocopy:

    robocopy C:/data D:/backup /e
    pause
    

    kak-sozdat-bat-fail-12

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

    kak-sozdat-bat-fail-13

    Запуск bat-файлов от имени администратора и по расписанию, скрытый запуск bat

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

    Запуск bat-файла от имени администратора

    Кроме того, можно сделать так, что конкретный батник будет запускаться с повышенными привилегиями всегда. Для этого необходимо создать на такой скрипт обычный ярлык, открыть его свойства, нажать кнопку «Дополнительно» и отметить в открывшемся окошке галочкой пункт «Запуск от имени администратора». Этот способ хорош ещё тем, что позволяет выбрать для ярлыка любой значок, тогда как файл с расширением BAT или CMD всегда будет иметь невзрачный вид.

    kak-sozdat-bat-fail-15

    Скрипты, как и все приложения, можно запускать по расписанию. Команда timeout /t здесь не совсем уместна, для отложенного запуска лучше всего использовать встроенный «Планировщик задач» Windows. Здесь всё просто. Открываем командой taskschd.msc Планировщик, определяемся с триггером, действие выбираем «Запустить программу» и указываем путь к bat-файлу. Вот и всё, скрипт будет запущен в положенное время.

    Настройка запуска bat файла через Планировщик - шаг 1

    Настройка запуска bat файла через Планировщик - шаг 2

    Настройка запуска bat файла через Планировщик - шаг 3

    Настройка запуска bat файла через Планировщик - шаг 4

    Настройка запуска bat файла через Планировщик - шаг 5

    И напоследок ещё один интересный момент. Когда вы запускаете bat-файл, на экране появляется, пусть даже на какую-то долю секунды, окно командной строки. А нельзя ли сделать так, чтобы скрипт выполнялся в скрытом режиме? Можно, причём несколькими способами. Самый простой заключается в следующем. Создаём на bat-файл ярлык, открываем его свойства и в меню «Окно» выбираем «Свёрнутое в значок». После этого единственным видимым признаком запуска скрипта будет появление значка CMD на панели задач, окон же при этом открываться не будет.

    kak-sozdat-bat-fail-21

    Если вы желаете полностью скрыть выполнение скрипта, можете воспользоваться «костылем» – скриптом 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
    

    kak-sozdat-bat-fail-22

    Есть также и другие варианты, например, использование утилиты Hidden Start, позволяющей запускать исполняемые и пакетные файлы в скрытом режиме, в том числе без приглашения UAC.

    А на этом пока всё. Информацию касательно создания скриптов BAT без труда можно найти в интернете. Неплохо также ознакомиться с учебником Уильяма Станека «Командная строка Microsoft Windows». Несмотря на то, что с момента издания книги прошло более десяти лет, содержащаяся в ней информация до сих пор актуальна.

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

    Например:

    1. Необходимо раз в месяц удалять все файлы из папки обмен.
    2. «Добросовестные» пользователи не выключают компьютеры, и уходят домой, а вам потом по голове дают за то, что компьютер работал, и жрал электроэнергию.
    3. У вас 20 человек в кабинете, принтер один и всем нужно выводить на него печать. Можно написать батник закинуть его в обмен зайти в кабинет и всем пользователям сказать зайдите туда-туда, нажмите то-то, и можете печатать, а если у Вас есть active directory, то можно распространить с помощью неё.

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

    Давайте разберем первый пример:

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

    1. Открываем WordPad, блокнот не подойдет, он не умеет сохранять в кодировке 866.
    2. Пишем:

    del /q “c:обмен”
    pause
    Команда del- удаляет файлы, ключ q говорит, удалять файлы без подтверждения пользователя, дальше идет путь до папки обмен, команда pause – это для вашего удобства, что бы окно не закрылось автоматически после выполнения работы скрипта, можно её не писать.

    1. Дальше выбираем Файл => Сохранить как => в строке Имя файла пишем допустим, del_obmen.bat, жмем Ок, запускаем и наслаждаемся.

    Второй пример:

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

    1. Открываем WordPad.
    2. Пишем:

    SHUTDOWN /s
    Пояснения я думаю ни к чему.
    3. Дальше выбираем Файл => Сохранить как => в строке Имя файла пишем допустим, shutdown.bat, жмем Ок, запускаем и наслаждаемся.
    4. Дальше открываем панель управления => планировщик заданий, создаем задание в 20 00, думаю понятно для чего.

    Третий пример:

    У вас 20 человек в кабинете, принтер один и всем нужно выводить на него печать. Можно написать батник закинуть его в обмен зайти в кабинет и всем пользователям сказать зайдите туда-туда, нажмите то-то, и можете печатать, а если у Вас есть active directory, то можно распространить с помощью неё.

    1. Открываем WordPad.
    2. Пишем:

    start \192.168.0.37SamsungU
    Start – запуск, \192.168.0.37 – ip адрес, SamsungU – имя принтера.

    Если у вас ip адреса раздаются по DHCP, то лучше ввести не ip адрес, а имя компьютера. 

    3. Дальше выбираем Файл => Сохранить как => в строке Имя файла пишем допустим, print.bat, жмем Ок, запускаем и наслаждаемся.

     

    Основные команды, которые используются для написания батников:

    ASSOC — Отображает или модифицирует связи расширений файлов
    AT — Планирует команды и программы для выполнения на компьютере.
    ATTRIB — Отображает или изменяет атрибуты файла.
    BREAK — Устанавливает или отменяет проверку комбинации [Ctrl+C].
    CACLS — Отображает или модифицирует списки управления доступом (ACLs) для файлов.
    CALL — Вызывает один *.BAT-файл из другого.
    CD — Отображает имя или изменяет имя текущей директории.
    CHCP — Отображает или устанавливает номер активной кодовой страницы.
    CHDIR — Отображает имя или изменяет имя текущей директории.
    CHKDSK — Проверяет диск и отображает отчет о состоянии.
    CLS — Очищает экран.
    CMD — Стартует новый экземпляр интерпретатора команд Windows NT.
    COLOR — Устанавливает цвета по умолчанию для переднего и заднего плана консоли.
    COMMAND — Стартует новую копию интерпретатора команд Windows.
    COMP — Сравнивает содержимое двух файлов или установки файлов.
    COMPACT — Отображает или видоизменяет сжатие файлов на патрициях Windows NT(NTFS).
    CONVERT — Конвертирует FAT томов к формату файловой системы Windows NT(NTFS). Вы не можете конвертировать текущий диск.
    COPY — Копирует один или больше файлов на другое место.
    CTTY — Изменяет терминальное устройство, используемое для управления вашей системой.
    DATE — Отображает или устанавливает дату.
    DEL — Удаляет один или более файлов.
    DEBUG — Выполняет отладку, тестирование программ и редактирование инструментальных средств.
    DIR — Отображает список файлов и поддиректорий в директории.
    DISKCOMP — Сравнивает содержимое двух дискет.
    DISKCOPY — Копирует содержимое одной дискеты на другую.
    DOSKEY — Редактирует командные строки, восстанавливает команды Windows и создает макрос.
    ECHO — Отображает сообщения, или включает/выключает вывод команд.
    EMM386 — Включает/выключает поддержку расширенной памяти EMM386.
    ENDLOCAL — Заканчивает локализацию изменений окружающей среды в *.BAT-файле.
    ERASE — Удаляет один или более файлов.
    EXIT — Прекращает выполнение программы «CMD.EXE» (интерпретатор команд).
    EXTRACT — Средство извлечения информации из CAB — файлов.
    FC — Сравнивает два файла или установки файлов, и отображает различие между ними.
    FIND — Ищет текстовую строку в файле или файлах.
    FINDSTR — Поиск строк в файлах.
    FOR — Выполняет указанную команду для каждого файла в наборе файлов.
    FORMAT — Форматирует диск для использования с Windows.
    FTYPE — Отображает или модифицирует типы файлов, используемых в связях расширений.
    GOTO — Направляет интерпретатор команд Windows NT к помеченной строке в *.BAT-файле.
    GRAFTABL — Способность Windows отображать символы псевдографики, вставленные в графическом режиме.
    HELP — Обеспечивает информацию Help для команд Windows.
    IF — Выполняет обработку условия в *.BAT-файле.
    KEYB — Конфигурирует клавиатуру для заданного языка.
    LABEL — Создает, изменяет, или удаляет метку тома на диске.
    LOADHIGH(LH) — Загружает программу в верхние адреса памяти.
    MD — Создает директорию.
    MEM — Отображает величину используемой и свободной памяти в вашей системе.
    MKDIR — Создает директорию.
    MODE — Конфигурирует системное устройство.
    MORE — Отображает вывод одного экрана за раз.
    MOVE — Перемещает один или более файлов из одной директории в другую на том же диске.
    NETSTAT — Отображает статистики протоколов и текущих сетевых соединений TCP/IP.
    NLSFUNC — Загружает информацию, специфическую для страны.
    PATH — Отображает или устанавливает путь поиска для выполняемых файлов.
    PAUSE — Приостанавливает обработку *.BAT-файла и отображает сообщение.
    POPD — Восстанавливает предыдущее значение текущей директории, сохраненной по PUSHD.
    PRINT — Печатает текстовый файл.
    PROMPT — Изменяет подсказку к командам Windows.
    PUSHD — Сохраняет текущую директорию, потом изменяет.
    RD — Удаляет директорию.
    RECOVER — Восстанавливает читаемую информацию с плохого или дефектного диска.
    REM — Записывает комментарии (примечания) в *.BAT-файлы или CONFIG.SYS.
    REN — Переименует файл или файлы.
    RENAME — Переименует файл или файлы.
    REPLACE — Заменяет файлы.
    RESTORE — Восстанавливает файлы, которые были архивированы с использованием команды BACKUP.
    RMDIR — Удаляет директорию.
    SET — Отображает, устанавливает или удаляет переменные среды Windows.
    SETLOCAL — Начинает локализацию изменений среды в *.BAT-файле.
    SETVER — Устанавливает номер версии MS-DOS, который Windows сообщает программе.
    SHIFT — Сдвигает позицию замещаемых параметров в *.BAT-файле.
    SMARTDRV — Инсталлирует и конфигурирует утилиту кэширования диска SMART — драйва.
    SORT — Сортирует входной поток.
    START — Стартует отдельное окно для выполнения указанной программы или команды.
    SUBST — Связывает путь с литерой диска.
    SYS — Копирует файлы системы MS-DOS и интерпретатор команд на указанный вами диск.
    TIME — Отображает или устанавливает системное время.
    TITLE — Устанавливает заголовок окна для сеанса «CMD.EXE» .
    TREE — Графически отображает структуру директория в драйве или путь.
    TYPE — Отображает содержимое текстового файла.
    VER — Отображает версию Windows.
    VERIFY — Сообщает Windows, проверять ли правильность записи файлов на диск.
    VOL — Отображает метку дискового тома и серийный номер.
    XCOPY — Копирует файлы и деревья директории.
    Также есть очень хороший форум, где куча готовых скриптов.
    Командная строка, батникисценарии (bat, cmd) 

    Предыдущая

    Windowsntvdm.exe загрузка процессора на 100%

    Следующая

    WindowsОбзор Windows 8

    Понравилась статья? Поделить с друзьями:
  • Как написать backend для сайта
  • Как написать backdoor на python
  • Как написать assignment
  • Как написать ascii
  • Как написать appdata на windows 10