For
Содержание:
- Часть первая. Основные моменты при создании bat-файлов
- Экспорт переменных реестра из пакетного файла
- Как создать «батник» в операционной системе Windows 7
- Встроенные команды
- Проверка условий и выбор вариантов. Команды if и goto
- Как создать бат-файл в Виндовс 10
- Автоматический ответ на запросы о подтверждении
- Как создать bat файл для запуска программы?
- Выполнение резервных копий в автоматическом режиме
- Поиск в локальной сети включенных компьютеров.
- Урок 6 по cmd — обзор цикла for командной строки |
- Второй способ – программный
- Особенности
Часть первая. Основные моменты при создании bat-файлов
- Выше уже упоминалось, что пакетный файлы — это обычные текстовые документы. Так и есть, но для того, чтобы они работали и выполняли свои функции, им нужно придать подобающий вид, т.е. поменять расширение. Вообще в Windows используется как расширение *.bat, так и *.cmd, по сути они отличаются весьма незначительно лишь некоторыми нюансами, поэтому, в целях избежания путаницы, будем говорить о bat-файлах. Т.е. чтобы создать исполняемый пакетный файл, мы открываем стандартный блокнот (либо другой, привычный вам текстовый редактор), вбиваем туда нужные нам команды и сохраняем файл с любым именем и расширением bat;
- По сути, перечень команд, описанных в пакетном файле (батнике) может быть воспроизведён вручную в командной строке (пуск — все программы — стандартные — командная строка), упаковываем их (команды) мы исключительно для удобства, простоты и моментальности (если позволите) воспроизведения;
- Если испытываете что-то серьёзное и не уверенны в своих действиях, лучше испытывайте детище к примеру на виртуальной машине (в крайнем случае — на компьютере соседа);
- Список возможных к использованию команд очень велик, посмотреть его можно, набрав в командной строке help, здесь же будут расшифровываться команды по мере их появления в создаваемых батниках;
- Все инструкции, приведённые в статье, тестировались на ОС Windows XP и Windows 7.
к содержанию
Экспорт переменных реестра из пакетного файла
В некоторых случаях поставлена задача, противоположная рассмотренной в предыдущем абзаце. Чтобы сохранить в пакетном файле некоторую часть реестра с полным перечнем параметров, необходимо использовать следующий подход:
regedit.exe -ea C:\environment.reg «HKEY_CURRENT_USER\Environment»
Происходит сохранение ветки HKEY_CURRENT_USER\Environment в документ, расположенный по адресу C:\environment.reg. При запросе на восстановление значений HKEY_CURRENT_USER\Environment, предполагается необходимым только выполнить запуск environment.reg. Примером использования такой команды следует назвать осуществление регулярного бэкапа настроек ПО или всей системы. Подобная информация находится в реестре и может быть выгружена оттуда. Полный адрес может включать в себя проблемы. Чтобы они не вызвали ошибку, надо позаботиться о заключении подобного пути в кавычки.
Как создать «батник» в операционной системе Windows 7
Сделать этот файлик может любой пользователь на компьютере, который имеет достаточно прав для создания и сохранения файлов. На счет выполнения немного сложнее — выполнение «батника» должно быть разрешено как и отдельно взятому пользователю, так и операционной системе в целом (запрет иногда накладывается в целях безопасности, ведь исполняемые файлы не всегда создаются для благих дел).
Будьте внимательны! Никогда не запускайте на компьютере файлы с расширением .BAT, скачанные из неизвестного или подозрительного ресурса, а также не используйте при создании такого файла код, в котором вы не уверены. Исполняемые файлы такого типа умеют шифровать, переименовывать или удалять файлы, а также форматировать целые разделы.
Способ 1: использование расширенного текстового редактора Notepad++
Программа Notepad++ является аналогом стандартного Блокнота в операционной системе Windows, значительно превосходя его в количестве и тонкости настроек.
- Файл можно создать на любом диске или в папке. Для примера будет использован рабочий стол. На свободном месте нажмите правую кнопку мыши, наведите курсор на надпись «Создать», в выпавшем сбоку окошке щелчком левой кнопки мыши выберите «Текстовый документ»
На рабочем столе появится текстовый файл, который желательно назвать так, как в итоге будет называться наш батник. После того, как имя для него определено, нажмите на документе левой кнопкой мыши, и в контекстном меню выберите пункт «Edit with Notepad++». Созданный нами файл откроется в расширенном редакторе.
shutdown.exe -r -t 00
После запуска этот батник перезагрузит компьютер. Сама команда означает запуск перезагрузки, а цифры 00 — задержку ее выполнения в секундах (в данном случае она отсутствует, то есть перезапуск выполнится незамедлительно).
Когда команда будет записана в поле, наступает самый важный момент — превращение обычного документа с текстом в исполняемый. Для этого в окошке Notepad++ слева вверху выберите пункт «Файл», затем нажмите на «Сохранить как».
Появится стандартное окно Проводника, позволяющее задать два основных параметра для сохранения — место и имя самого файла. Если с местом мы уже определились (по умолчанию будет предложен Рабочий стол), то именно в названии заключается последний шаг. Из выпадающего меню выберите пункт «Batch file».
К уже заданному ранее слову или фразе без пробела допишется «.BAT», и получится так, как на скриншоте ниже.
После нажатия на кнопку «OK» в предыдущем окне, на рабочем столе появится новый файл, который будет выглядеть как белый прямоугольник с двумя шестеренками.
Способ 2: использование стандартного текстового редактора Блокнот
Он обладает элементарными настройками, которых вполне хватает для создания самых простых «батников». Инструкция абсолютно аналогична предыдущему способу, программы лишь немного отличаются в интерфейсе.
- На рабочем столе двойным щелчком откройте ранее созданный текстовый документ — от откроется в стандартном редакторе.
В окошке редактора слева вверху нажмите на кнопку «Файл» — «Сохранить как…». Откроется окно Проводника, в котором необходимо указать место сохранения конечно файла. Здесь отсутствует способ задания необходимого расширения с помощью пункта в выпадающем меню, поэтому просто нужно дописать к названию «.BAT» без кавычек, чтобы получилось так, как на скриншоте ниже.
Оба редактора отлично справляются с созданием батников. Стандартный блокнот больше подходит для простых кодов, в которых используются несложные одноуровневые команды. Для более серьезной автоматизации процессов на компьютере необходимы продвинутые батники, которые с легкостью создаются расширенным редактором Notepad++.
Рекомендуется запускать файл .BAT от имени администратора, чтобы не возникало проблем с уровнями доступа к определенным операциям или документам. Количество задаваемых параметров зависит от сложности и назначения задачи, которую необходимо автоматизировать.
В этой статье рассмотрим два способа создания bat-файла: с помощью Проводника и с помощью Блокнота. Этого будет достаточно, чтобы создавать новые bat-файлы, но сперва определимся, для чего они нужны. Если совсем просто, то bat-файл нужен для того, чтобы один раз записать набор команд для командной строки Windows, а затем выполнять их в любое время не набирая каждый раз. В общем, идеальный вариант для ленивых и/или системных администраторов. =)
Сразу перейду к делу:
Встроенные команды
1. @echo – это команда bat-файлов, которая позволит увидеть работу скрипта в командной строке. Она используется для просмотра хода выполнения рабочего кода. Если у пакетного файла возникают какие-либо проблемы, то данная команда позволит быстро локализировать проблемы. Добавление off дает возможность быстро завершить выполнение кода, избегая вывода ненужной информации на экран.
2. Title предоставляет те же возможности, что и тег в HTML, т. е. создает заголовок для пакетного скрипта в окне командной строки.
3. Call вызывает один bat-файл из другого или подпрограмму внутри одного сценария. Например, функция power вычисляет степень %2 числа %1:
if %counter% gtr 1 (
endlocal & set result=%prod%
4. Cls очищает командную строку. Используется для того, чтобы предыдущий вывод постороннего кода на помешал просмотру хода выполнения текущего скрипта.
5. Color задает цвет шрифта и фона. Например, команда color f9 задает белые буквы на синем фоне. Команда без параметра восстанавливает установки по умолчанию.
6. Echo служит для вывода информации, а также включения (echo on) или выключения (echo off) такого вывода. Например, команда echo. выводит новую строку без точки, а echo . – точку. Без параметров команда выводит на экран информацию о своем текущем статусе – echo on или echo off.
7. Rem обеспечивает ту же функциональность, что и тег > (сдвиг вправо). Логическим оператором отрицания является ! (восклицательный знак). Он изменяет 0 в 1 и ненулевое значение в 0. Оператором комбинирования служит , (запятая), которая позволяет производить большее число операций в одной команде set. Комбинированные операторы присваивания += и -= в выражениях a+=b и a-=и соответствуют выражениям a=a+b и a=a-b. Так же работают и *=, %=, /=, &=, |=, ^=, >>=, >, >=; ,
Литералы можно вводить в виде десятичных, шестнадцатеричных (с ведущими 0x) и восьмеричных чисел (с ведущим нулем). Например, set /a n1=0xffff присваивает n1 шестнадцатеричное значение.
Проверка условий и выбор вариантов. Команды if и goto
Команда if позволяет выделять в командном файле группы команд, которые выполняются или не
выполняются в зависимости от определенных условий. Для чего это нужно?
Проверка условия — почти необходимая мера при создании командных файлов,
использующих параметры. Перед тем, как начинать работу, командный файл, вообще говоря, должен
удостовериться в том, что ему передан корректный набор параметров. В противном случае велик
риск, что он выполнится неверно или безрезультатно, а пользователю останется только гадать, в
чем же проблема. Более того, если командный файл удаляет, перемещает или перезаписывает
какие-либо данные, то при некорректных параметрах он может даже нанести ущерб.
На следующем листинге показан уже знакомый вам командный файл компиляции хелп-файла. В начало
командного файла добавлена проверка первого параметра на непустоту
Обратите внимание на такую
особенность синтаксиса: для операции сравнения используется сдвоенный знак равенства. Если
первый параметр оказывается непустым, срабатывает команда goto, которая
«перебрасывает» командный процессор к указанной метке
В данном случае имя
этой метки compile. Обратите внимание, что там, где метка находится, ее имя предваряется
двоеточием, а в команде goto нет. При пустом первом параметре командный процессор переходит к
следующей строке, которая выдает сообщение об ошибке. А потом к следующей, которая
перебрасывает его в самый конец файла к метке с именем finish.
@echo off rem Проверяем, задан ли параметр if not "%1"=="" goto compile rem Если параметр пуст, выдаем сообщение об ошибке echo Не указано имя проекта хелп-файла rem и переходим в конец командного файла rem к метке finish goto finish rem Это метка с именем compile :compile rem Ниже расположены команды компиляции rem Путь к компилятору хелп-файлов set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Путь к каталогу, в котором находятся проекты хелп-файлов set project_path=e:\work\projects\help-projects rem Вызываем компилятор для обработки конкретного проекта, rem имя которого передаем в первом параметре %help_compiler% %project_path%\%1.hpj rem Это метка с именем finish :finish
Скажем прямо, предложенный способ проверки параметра не самый удачный.
Во-первых, если пользователь по ошибке укажет в качестве параметра имя несуществующего файла,
командный файл этим удовлетворится и предпримет попытку компиляции. Более правильный способ
— проверить, существует ли такой файл в действительности. Для этого в языке команд
MS-DOS предусмотрено специальное слово exist. Поэтому лучше было бы написать:
if exist %1.hpj goto compile.
Во-вторых, активное использование команды goto (т.н. безусловного перехода) и
меток сильно запутывают код. Технически они ничем не плохи, но отлаживать и сопровождать
командный файл, написанный в таком стиле, довольно неудобно. Поэтому программисты издавна
считают безусловный переход приемом нежелательным. Ниже показан более правильный, с точки
зрения стиля программирования, структурированный вариант, в котором используется конструкция
if…else. Работает она так: если условие истинно, выполняются
команды в скобках после if, а если ложно, то в скобках после else.
@echo off rem Проверяем, задан ли параметр if not exist %1.hpj ( rem Если параметр пуст, выдаем сообщение об ошибке echo Такого проекта хелп-файла не существует. ) else ( rem Ниже расположены команды компиляции rem Путь к компилятору хелп-файлов set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Путь к каталогу, в котором находятся проекты хелп-файлов set project_path=e:\work\projects\help-projects rem Вызываем компилятор для обработки конкретного проекта, rem имя которого передаем в первом параметре %help_compiler% %project_path%\%1.hpj )
Обратите внимание на отступы от левого края. Они необязательны, но делают текст командного
файла более читабельным
Приведем еще один пример работы с проверками. Следующий командный файл создает каталог с
именем help-files (предположим, для выгрузки в него скомпилированных
хелп-файлов). При этом, если каталог с таким именем уже существует (и в нем, вероятно,
находятся старые хелп-файлы, которые не хотелось бы терять: вдруг новые окажутся хуже?),
командный файл присваивает ему расширение bak. Но если каталог help-files.bak
уже существовал, то командный файл его удаляет (будем считать, что одной резервной копии нам хватит).
if exist help-files.bak rd help-files.bak if exist help-files ren help-files help-files.bak md help-files
Как создать бат-файл в Виндовс 10
Создать его можно двумя способами, используя текстовый редактор или Командную строку. Рассмотрим каждый из них подробнее.
Через Блокнот
Создать объект в Винде можно, воспользовавшись любым текстовым документом. Использование Блокнота считается самым доступным и простым вариантом, актуальным во всех редакциях ОС.
Пошаговая инструкция:
Открыть меню Поиск.
Набрать в поисковике: notepad или блокнот.
Открыть приложение.
Вставить в текстовый редактор команду для исполнения запроса.
В верхней строке выбрать вкладку «Файл».
В меню тапнуть по «Сохранить как».
Выбрать место сохранения.
Указать соответствующее расширение.
В окне «Тип файла» выбрать значение «Все файлы».
Сохранить изменения.
Запуск Блокнота без администраторских прав не позволит сохранить объект в системной папке C. Для этого изначально можно сохранить его в другом месте, а затем переместить его на требуемый диск. Или запустить от имени Администратора.
После выполнения всех пунктов бат будет готов к выполнению поставленных задач. Запустив редактор, программа автоматически начнет свою работу. Если в дальнейшем юзеру понадобится сделать корректировку работы файла, достаточно нажать на него ПКМ, выбрать параметр «Изменить».
Если не получится, то открыть при помощи блокнота.
Затем внести корректировки и сохранить.
С использованием командной строки
Программное обеспечение входит в состав Винды. Консоль помогает взаимодействовать пользователю с компьютером посредством набора команды. Командная строка запускается в своей оболочке, предназначена для продвинутых пользователей. Если создать бат в «десятке» с использованием Блокнота не получается, поможет этот интерфейс. Созданный через командную строку bat files будет запускаться по такому же пути.
Пошаговая инструкция:
Запустить Поиск.
Ввести команду: cmd.
Набрать: copy con c:\lumpics_ru.bat, где copy con – значение, создающее текстовый документ. Остальное – адрес, имя и расширение файла.
В следующей строке ввести текст.
При заполнении вручную на новую строку пользователь может перейти с помощью нажатия: «Ctrl + Enter». Если юзер заранее подготовил текст, тогда в окне понадобится нажать ПКМ. Из буфера обмена вся информация автоматически попадет в строки.
- Сохранить данные одновременным нажатием: «Ctrl + Z».
- Нажать «Enter».
При успешном выполнении всех шагов в окне отобразится уведомление.
Для проверки корректности работы нужно открыть двойным кликом ЛКМ по названию.
Автоматический ответ на запросы о подтверждении
При работе некоторых команд может возникнуть ситуация, когда они должны совершить потенциально опасное действие в системе. В качестве примера рекомендуется назвать format или del. Подобный момент предусмотрен и выдается соответствующее предупреждение. Когда производится выполнение внутри пакетного файла, то его деятельность остановится. Она будет возобновлена только после подтверждения и это способно стать причиной потери драгоценного времени.
Существует способ осуществления задачи автоматизации. Предполагается использование перенаправления необходимого ответа в команду. Далее будет на примере рассмотрено подобное действие. Требуется создать на диске С обычную папку Folder и внутрь неё осуществим помещение любых 2х документов.
Запускаем интерпретатор команд и вводим в нем
del C:\Folder
Это предполагает необходимость осуществить удаление вместе со всеми файлами внутри. Поскольку подобное действие относится к числу потенциально опасных, поступит запрос на подтверждение следующего вида:
C:\Folder\*, продолжить [Y(да)/N(нет)]?
Команда не станет продолжаться до тех пор, пока пользователь не ответит. Если работа производится в автономном режиме, ожидание может быть крайне длительным, а сам процесс останется невыполненным. Для выхода из сложившейся ситуации рекомендуется применение специального символа (|). Он предусматривает, что должна произойти передача следующей сразу после команде. Теперь модифицируем строку в пакетном файле:
echo Y|del C:\Folder
На экран происходит выдача подтверждения с уже положительным решением. Таким образом, из указанной папки произойдет удаление всех документов. Следует аккуратно использовать подобную возможность.
Как создать bat файл для запуска программы?
Чтобы создать батник, необходимо запустить редактор текста, затем сохранить файл с конечным именем bat. При отсутствии в вашем редакторе нет функции сохранения с таким расширением, то его необходимо прописать самостоятельно. При запуске такого файла у нас откроется консоль и если никаких команд не будет, то она тут же закроется.
Теперь давайте зададим команду для запуска программы. Для этого необходимо открыть наш созданный батник в блокноте или другом редакторе и прописать команду.
На примере запустим браузер. Необходимо сначала вписать команду Start и после пробела написать Opera.
Выглядеть это должно так:
Start Opera
Такая сработает для программ известных системе, но если произвести запуск софта, который не известен системе, потребуется прописать весь путь к программе. Например если у вас ftp установлен в папку Program Files то для того чтобы его запустить нужно ввести команду
start filezilla
А если ftp клиент установлен в другую папку нужно будет прописать весь путь.
Эта технология поможет при выполнении разного рода задач, причем в автоматическом режиме. Некоторые пользователи даже пишут таким образом вирусы. Чтобы невозможно было изменить конфигурацию файла с помощью редактора текста, необходимо конвертировать файл bat в exe. Это поможет сделать различный вспомогательный софт, который вы можете найти в сети. Например, для преобразования bat в exe поможет программа Bat to exe converter.
Функция бат очень полезна и порой необходима. С помощью нее можно писать целые программы узкого спектра действия. Область применения зависит только от знаний команд и умения их совмещать. Поэтому пользуйтесь и расширяйте свои навыки и умение пользоваться компьютером на уровне Супер пользователя.
Выполнение резервных копий в автоматическом режиме
Ниже будет представлен скрипт, который отвечает за создание архивных копий документов с данными пользователей, а также некоторыми другими документами. Не предусматривается проведение подобных мероприятий с медиа файлами. Причиной является их значительный объем. Дополнительно, их потеря редко считается критичной.
rem *******************
rem задаём жесткий диск, где лежат папки для архивирования и винт куда будем бэкапить
rem *******************
SET DRIVE1ST=d:
SET DRIVE2ND=e:
rem *******************
rem пароль на архив
rem *******************
SET PASSWD=qmsdhgsdfgsdfhdsfhsdhf
rem *******************
rem если копировать для надёжности куда-нибудь на сетку
rem *******************
rem SET COPYTO=\\shpakk\c$\!backup
rem ********************
rem *** Проверим путь назначения архива
rem ********************
%DRIVE1ST%
if not exist \!backup md \!backup
if not exist \!backup\Departments md \!backup\Departments
if not exist \!backup\Exchange md \!backup\Exchange
if not exist \!backup\MEDEA_rdisk md \!backup\MEDEA_rdisk
cd \!backup
rem ******************************
rem *** Backup \\SERVER\e$\Exchange
rem ******************************
SET DIRNAME=Exchange
SET FILENAME=SERVER_Exchange
SET SOURCEDIR=e:\Exchange
rar a -r -m5 -dh -x*.mp3 -x*.fcd -x*.avi -x*.zip -x*.rar -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next2
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%
:next2
rem ***************************
rem *** Backup \\SERVER\e$\Users
rem ***************************
SET DIRNAME=Departments
SET FILENAME=SERVER_Departments
SET SOURCEDIR=e:\Departments
if not exist %DIRNAME%\%FILENAME%_new.rar goto next3
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_4.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_3.rar %FILENAME%_4.rar
ren %DIRNAME%\%FILENAME%_2.rar %FILENAME%_3.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%_2.rar
:next3
rem *******************
rem это если архив будет большим — кусками бить -v357888k
rem *******************
rem rar a -r -m5 -v357888k -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
rem *******************
rem архивирование пошло, не берём мультимедиа файлы
rem *******************
rar a -r -dh -x*.mp3 -x*.fcd -x*.avi -x*.exe -x*.jpg -x*.tif -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%
goto next4
:next4
rem **********************************
rem *** Create repair disk on \\SERVER
rem **********************************
SET DIRNAME=MEDEA_rdisk
SET FILENAME=MEDEA_rdisk
SET SOURCEDIR=%windir%\repair
%windir%\system32\rdisk.exe /s-
rar a -r -m5 -dh -w%DRIVE2ND%\ -p%PASSWD% %DIRNAME%\%FILENAME%_new %SOURCEDIR%\*.*
if not exist %DIRNAME%\%FILENAME%_new.rar goto next5
del %DIRNAME%\%FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%.rar %FILENAME%_old.rar
ren %DIRNAME%\%FILENAME%_new.rar %FILENAME%.rar
copy %DIRNAME%\%FILENAME%.rar %COPYTO%\%DIRNAME%
:next5
В итоге имеем 3 папки: Departments, в ней:
SERVER_Departments_2.rar — 2х дневной давности
SERVER_Departments_3.rar — 3х дневной давности
SERVER_Departments_4.rar — 4х дневной давности
SERVER_Departments_new.rar — НОВЫЙ
SERVER_Departments_old.rar — СТАРЫЙ Exchange
Так как архивируем обменник — он нам сильно то и не нужен храним только сегодняшний и вчерашний архивы
SERVER_Exchange.rar
SERVER_Exchange_old.rar ну и систему на всякий в папке
SERVER_rdisk
SERVER_rdisk.rar
SERVER_rdisk_old.rar
Поиск в локальной сети включенных компьютеров.
В данном примере речь идет о создании командного файла, позволяющего «собрать» список IP-адресов узлов локальной сети, включенных на данный момент времени. Ничего принципиально нового в плане создания командных файлов здесь нет, но тем не менее, задача поиска включенных узлов в локальной сети встречается довольно часто, и решить ее описанными выше способами, с использованием ping.exe и net view удается далеко не всегда, поскольку в современных версиях операционных систем семейства Windows настройки брандмауэров по умолчанию, задают довольно жесткие правила, блокирующие сетевые соединения извне, и ответы на эхо-запрос.
Прием, используемый для получения списка включенных сетевых устройств при решении данной задачи остается прежним – необходимо определить характерные отличия в выходных сообщениях стандартных сетевых утилит в случае, когда устройство выключено, и когда – защищено параноидальными настройками брандмауэра.
При любой передаче пакетов IP-протокола с данного компьютера на IP-адрес другого сетевого устройства в локальной сети, программные средства сетевых протоколов выполняют процедуру определения физического адреса сетевого адаптера получателя ( MAC-адрес получателя).
Всем сетевым устройствам отправляется специальный широковещательный запрос ( запрос который будет принят всеми компьютерами данной подсети), означающий «чей MAC – адрес соответствует такому-то IP-адресу». Если какое-либо сетевое устройство опознало свой собственный IP-адрес, оно отправит ARP-ответ, содержащий соответствующий MAC-адрес, который будет сохранен в специальной таблице соответствия адресов IP и MAC, хранящейся в оперативной памяти компьютера, отправившего ARP-запрос.
Запись информации в данную таблицу выполняется только при необходимости передачи любых данных по протоколу IP, что можно инициировать, например, пингованием опрашиваемого устройства. Даже если настройками брандмауэра полностью закрыты все соединения извне и блокируется протокол ICMP ( устройство не «пингуется» ) , в буферной памяти сервиса ARP будет присутствовать запись соответствия IP и MAC, если устройство было подключено к локальной сети и участвовало в процедуре разрешения адреса .
Для просмотра содержимого ARP-кэш можно воспользоваться командой
arp -a — отобразить все записи в таблице ARP
Пример отображения таблицы ARP:
Интерфейс: 192.168.0.29 — 0xa
адрес в Интернете Физический адрес Тип
192.168.0.1 00-1e-13-d6-80-00 динамический
192.168.0.3 60-eb-69-08-18-d2 динамический
. . .
Интерфейс: 192.168.234.1 — 0xf
адрес в Интернете Физический адрес Тип
192.168.234.255 ff-ff-ff-ff-ff-ff статический
224.0.0.22 01-00-5e-00-00-16 статический
224.0.0.252 01-00-5e-00-00-fc статический
239.255.255.250 01-00-5e-7f-ff-fa статический
Как видно из приведенной таблицы, например IP – адресу 192.168.0.1 соответствует физический адрес сетевого адаптера, равный 00-1e-13-d6-80-00 . Если же сетевой адаптер с данным адресом будет недоступен, то такой записи в таблице не будет.
Для понимания алгоритма опроса сети необходимо учесть следующее:
Разрешение адресов ARP используется только при передаче данных по IP-протоколу в пределах сегмента локальной сети, задаваемого маской. Так, например, для примера с IP адресом 192.168.0.1 и маски 255.255.255.0 это будет диапазон IP от 192.168.0.1 до 192.168.0.254.
Урок 6 по cmd — обзор цикла for командной строки |
В этой статье мы рассмотрим использование цикла for в командной строке, который, в отличии от аналогичных конструкций в других языках программирования, тут носит немного другой характер. Сперва, немного лирики…
В былые времена программирование носило совсем другие цели нежели теперь. Это теперь царит разнообразие различных языков: хочешь, пиши на php, хочешь, постигай вершины Delphi, в общем, все в изобилии и на любой вкус. Столь стремительный рост возможностей и средств для программирования затронул структуру и характер новых языков. Так, когда я еще проходил в школе на уроках информатики язык Pascal, то цикл использовался в основном для выполнения групповых математических задач: нахождение суммы чисел n-количества и групповое умножение. Теперь, ситуация немного другая, ведь помимо простой математики приходится работать с файлами, папками, объектами и коллекциями. И тут рождаются новые разновидности цикла:
В командной строке цикл един, но с помощью ключей можно менять структуру его применения: работа с файлами, с каталогами, банальный перебор значений или текстовых строк.
В этой статье мы рассмотрим общую структуру цикла командной строки, так сказать – сделаем краткий обзор. По ходу материала я буду давать ссылки на остальные статьи с описанием, уже узких примеров применения, и так, начнем…
Основной синтаксис применения следующий:
for итератор do (оператор)
Итератор – отвечает за ход выполнения. Тут определяется и условия и количество выполнения заданных операторов. Тут могут находиться как одна, так и несколько команд, которые можно объединить в одну цепочку, конвейер или группу (внутри скобок). Как и в стальных языках программировать, итератор содержит переменную инициализации (начальное значение), или же набор различных элементов – диапазон значений, группа файлов или папок.
На переменные инициализации распространяются следующие правила:
- Они существуют только в теле цикла командной строки
- В качестве имени нельзя использовать слово, например, myVar, а только латинские буквы в диапазоне от а до z или от А до Z, например %%А, %%В или %%С. Если вы используете цикл не в сценарии, а в окне консоли, то ставится только один символ %.
- Названия переменных итератора чувствительны к регистру символов, то есть, %%a и %%A будут отличаться.
Как я уже сказал, цикл в командной строке может изменять логику работы с помощью ключей, а именно:
for/D %%имя_переменной in (набор_каталогов) do оператор – как вы уже догадались, данный синтаксис применяется для групповой работы с каталогами. Об этом свидетельствует ключ /D (directory). Как и в случае с файлами, тут можно указывать шаблонный формат или список.
for /R %%имя_переменной in (набор_файлов) do оператор – данный синтаксис используется для групповой работы с подкаталоги, о чем говорит параметр /R. С его помощью можно задать путь к папке, а потом задать список и шаблон для файлов, в результате, мы можем обработать все документы заданного типа в заданном диске или папке.
Примеры работы с корневыми и вложенными папками рассмотрены в статье «Урок 8 по CMD«
for /L %%имя_переменной in (начало, шаг, конец) do оператор – отвечает за перебор значений. Параметры в круглых скобках задают начальное значение, шаг (может быть как положительным, так и отрицательным) и конечное значение.
for /F %%имя_переменной in (источник) do оператор – анализ текстовых файлов, строк и вывод команд. Данный синтаксис позволяет анализировать как содержимое файла, так и заданный текст. Плюс, можно задать параметры для анализа, например, число обрабатываемых строк, разделители и комментарии.
Примеры обработки текстовых строк рассмотрены в статье «Урок 9 по CMD«
for %%имя_переменной in (набор_файлов) do оператор – данный синтаксис применяется для групповой работы с файлами. Тут %%имя_переменной является переменной инициализации, которой будет присваиваться значение, заданное в “набор_файлов”, например, путь к заданному файлу. Так, набор_файлов может быть одной строкой определяющей группу документов по шаблону, или списком строк, разделенных пробелами.
Примеры работы с файлами и данными рассмотрены в статье «Урок 7 по CMD«
Спасибо за внимание. Автор блога
Второй способ – программный
Если новички редко задействуют командный интерпретатор и довольствуются опциями блокнота, то более опытные пользователи (системные администраторы, создатели сборок ОС и ПО) предпочитают более комфортный метод для работы с файлами bat.
Он подразумевает использование специальной программы для создания bat-файлов и их редактирования. Она называется Dr.Batcher.
У её интерфейса и функционала мало отличия от «Блокнота». В основном меню устроены кнопки наиболее актуальных команд. Программа может:
- Нумеровать страницы.
- Поддерживать закладки.
- Содержать перечень системных операций.
- Подсвечивать синтаксис вводимых команд.
Сотворение bat-файла в ней происходит в такой последовательности:
- Запуск программы.
- Обращение к пункту «File». Затем нажимайте кнопку «New». После чего щёлкаете на символ чистого листа, находящийся под меню «File».
- В появившемся окне выбирается опция «Empty Batch File».
После этого появится окно программы с требующимися рабочими функциями. Указываете диапазон команд, который должен реализовывать файл. Он находится в левой стороне:
Сохраняйте документ в необходимой директории на вашем жёстком диске.
Здесь можно сразу и отредактировать файл. Для этого есть несколько вариантов:
Первый: связан с вызовом контекстного меню bat-файла. Здесь выпадает определённый перечень функций. Выбирается пункт под названием «Edit with Dr.Batcher».
После этих действий запускается программное окно. В нём содержатся данные созданного ранее bat-файла. Можно вносить в них необходимые коррективы.
Второй: происходит в самой программе . Для этого она запускается, снова вызывается опция «File» из основного меню. Выпадает окно, в котором в данном случае интерес представляет пункт «Open».
Под обозначенным меню находится иконка папки, её следует щёлкнуть. Открывается диалоговое окно, позволяющее открывать файлы. В нём прописываете путь к интересуемому документу с разрешением bat и нажимайте «Открыть».
Этот файл открывается в программном окошке и становится доступным для корректировок.
Использование графического интерфейса в операционных системах сегодня представляется чем-то само собой разумеющимся и совершенно естественным, но так было не всегда. Первая операционная система MS DOS, разработанная компанией Microsoft, не имела GUI, а управление выполнялось посредством ввода текстовых команд. С тех пор минуло без малого 40 лет, однако скриптовый язык командной строки по-прежнему пользуется популярностью, причём не только в среде разработчиков.
Командная строка не столь удобна, зато с её помощью можно выполнять недоступны из GUI операции. С другой стороны, запускать каждый раз консоль, вводить в неё одну за другой команды – всё это сильно замедляет работу. Впрочем, можно существенно упростить задачу, создав бат-файл или попросту батник – текстовый файл с расширением BAT, содержащий список инструкций, обрабатываемых командным интерпретатором CMD. Используются такие файлы для автоматизации разных задач, например, для удаления временных файлов по расписанию или запуска программ.
Особенности
По сути, слово «батник» означает мужскую сорочку. В советское время такая рубашка имела приталенный силуэт и была представлена в ярком цвете. Особенно популярен мужской батник стал во время процветания в СССР стиля диско.
В наши дни мужской батник является стандартным предметом гардероба, выполненным в нейтральном или, наоборот, интересном дизайне. Например, наибольшей популярностью сейчас пользуются рубашки в полоску или модели, украшенные цветочными принтами или горошком. Почти все бренды в настоящее время могут предложить своим поклонникам большой ассортимент мужских батников.
Чаще всего этот вид одежды подбирается к стилю кэжуал, спортивным, деловым и классическим образам. Преимуществом является и возможность ношения в любую погоду. Обычно мужские изделия выполняются из плотных дышащих тканей, которые спасают от жары и защищают тело от холода. В основе батника лежат натуральные материалы, которые дают коже дышать и способствуют природному парообмену.