Рассмотрим мощный инструмент автоматизации рутинных задач в семействе операционных систем Windows.

Что такое bat-файлы?

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» 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 может быть любое имя или путь.

Тогда вывод будет перенаправлен в указанный файл.

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

Скорее всего данный скрипт выведет набор непонятных символов вместо сообщения. Дело в том, что в русскоязычных ОС 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 и итоговый скрипт получился таким:

Создание резервной копии каталога

Перейдем к более жизненной ситуации — создание резервной копии (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.

Источник: selectel.ru

В помощь переводчику — дизассемблирование скриптов что делать, если автор не дал psc файлы

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

Не унываем — выход есть: Bethesda снабдила нас возможностью дезассемблировать скрипты, просто не сказала нам об этом. Итак, как это сделать:

  • Ну это в принципе ясно — ставим «конструктор»
  • Находим папку %gamedir%Papyrus Compiler и обращаем в ней внимание на файл PapyrusAssembler.exe — это и есть ассемблер скриптов, а он-же и дезассемблер, если задать соответствующий ключ.
Читайте также:  Где селена в Скайриме

Как им пользоватся? А всё просто:

  • Устанавливаем рабочую папку в папку с .pex файлом, который нужно дезассемлбировать

Ну, это сделать так, чтоб в утилите cmd перед курсором писалось например e:SkyrimdataScripts, короче путь к интересующей нас папке. Это можно сделать набором команд cd или перейти в файлменеджере (напр. Total commander) в нужную папку и в командной строке набрать cmd и нажать «ввод».
В командной строке (можно, даже лучше, создать .bat файл) пишем:

«%gamedir%Papyrus CompilerPapyrusAssembler» -D

  • Жмём ввод.
  • Итого, если всё написано правильно т. е. если программа написала:

0 error(s), 0 warning(s)
Disassembly succeeded

  • То ищем в папке с .pex файлом файл формата «имя нашего pex файла.disassemble.pas» — это и есть дезассемблированный файл, который хоть и имеет специфический формат, сильно отличающийся от формата psc файла, но уже являющийся текстовым и его можно редактировать.

Итак. Редактировать. А что редактировать? А то же (названия функций принципиально не изменены т. е. забивай в поиск название функции напр. MessageBox (или Message), находи строку, в которой она встречается и редактируй текст в «кавычках».

Оригинальный скрипт

Scriptname _test_testscript extendsObjectReference
«Привет мир!»>
EventOnActivate(ObjectReference akActionRef)
Debug.MessageBox(«Привет, мир!»)
endEvent

Дезассемблированный скрипт

Просмотрел? Увидел строку

Это и есть интересующее нас место. Что тут менять — это и ежу понятно: «Привет мир!» (кавычки сохраняем — они — техническая часть текста)

Ну поменяли. А что дальше? Да всё просто — ассемблируем!

  • стираем из имени файла участок .disassemble
  • и пишем всё то же, что и при дезассемблировании, только без ключа -D :

«%gamedir%Papyrus CompilerPapyrusAssembler»

Если всё введено правильно то программа выдаст:

0 error(s), 0 warning(s)
Assembly succeeded

И создаст вожделенный .pex файл, который, ну, используем по назначению. Всё! Скачать описание: в помощь переводчику.zip

PapyrusAssembler

Использование: PapyrusAssembler файл [-D] [-V] [-Q] [-A] [-S] [-?]

Файл имя файла (путь берётся только из «рабочей папки», больше никак), который будет скомпилирован или декомпилирован. файл должен указыватся без расширения! Компилятор ищет файл с расширением «.pas». Декомпилятор ищет расширение «.pex». Внимание! декомпиляция не происходит, если имя файла скрипта не совпадает со стокой, начинающейся с байта 0Х12h в теле скрипта! (в нормальном состоянии строка дублирует имя файла)

  • -D Дезассемблировать объект, если не указан — ассемблирует его.
  • -V Включить подробный режим. (выводит туеву хучу всякой техинфы)
  • -Q Включает тихий режим. (выводятся только сообжения об ошибках)
  • -A Только анализ. Ассемблирование/дезассемблирование не производится.
  • -S Удаляет отладочную информацию из скомпилированного (.pex) файла. Нельзя использовать с -A или -D
  • -? Выводит справочную информацию

PapyrusCompiler

Объект

  • Файл Указывает файл для компиляции. (-all не указан)
  • папка Указывает папку для компиляции. (-all указан)

Аргументы

Один или несколько из следующих:

  • -debug -d Включает режим отладки компилятора, на экран выводится техническая информация.
  • -optimize -op Включает режим оптимизации кода скрипта.
  • -output -o= Указвает каталог для записи скомпилированных скриптов.
  • -import -i= Указвыает папки для импорта библиотек (тоже psc файлы) компилятором, разделённые «;». Обязателен для указания. Путь по умолчанию %gamedir%datascriptssource
  • -flags -f= Указывает путь к файлу с флагами, определёнными пользователем. Обязателен для указания. «дефолтный» файл флагов лежит по пути %gamedir%datascriptssourceTESV_Papyrus_Flags.flg
  • -all -a Задаёт компилятору скомпилировать все psc файлы в заданной папке. (в качестве объекта должна быть заданна папка).
  • -quiet -q Тихий режим. Отображаются сообжения только об ошибках.
  • -noasm Ассемблер не вызывается и не производится ассемблирование скрипта. (короче только анализ)
  • -keepasm Сохраняет ассемблер файл после завершения работы ассембера. (сохраняет pas файл)
  • -asmonly Создаёт ассемблер файл, но не вызывает ассемблер. (создаёт pas файл, но не создаёт pex файл)
  • -? Выводит справочную информацию.

Файл TESV_Papyrus_Flags.flg (по умолчанию лежит в %gamedir%datascriptssourceTESV_Papyrus_Flags.flg. Начинка по умолчанию и её описание:

/*
Формат строк задаётся следующим образом (пробелы игнорируются, index должен содержать 0 — 31 символов):
Flag // Флаг применяется для всех типов
или:
Flag < >// флаг применяется только для указанных типов
*/

// Список флагов для TESV — НЕ РЕДАКТИРОВАТЬ

// Флаг прячет скрипт или параметр от игрового редактора. (ну небось типа в редакторе не отображается)
Flag Hidden 0
Script
Property
>

Читайте также:  Красивый каджит без модов Скайрим как создать

// Флаг на объекте определяет его как скрипт, который будет рассматривать система состояний.
// Флаг на переменоой определяет переменную скрипта как исследуемую системой состояний.
// Сам нихера не понял, что это значит, но самый близкий перевод.
Flag Conditional 1
Script
Variable
>

Источник: tesall.ru

Как создать файл с расширением bat? Для чего предназначены такие файлы

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

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

Что такое bat-файл? Для чего он нужен

Bat файл – это текстовый файл с определённым набором символов, которые вводятся в командную строку. Запустив всего один файл, пользователь экономит время на выполнение большого количества действий. Такие файлы применяются для автоматизации часто повторяющих действий пользователя. Файл с расширением .bat называется пакетным (командным). На сленге пользователей он называется «батник».

Примеры bat-файлов

    Удаление пустых папок и подпапок на компьютере с места запуска файла — for /f «usebackq delims=» %%d in (`«dir /ad/b/s | sort /R»`) do rd «%%d»

Помните! При наличии в папке скрытых файлов с расширениями .db или .ini удаление папки невозможно.

Как открыть файл с расширением bat

  • echo %1
  • echo %2
  • echo %3
  • pause

Как создать bat-файл в Windows? Последовательность действий

Наиболее простой способ создания bat файла – использование программы Блокнот (NotePad). После активации программы из панели «Стандартные» или при помощи команды C:Windowsnotepad.exe на страницу блокнота вносится или копируется код.
Как создать bat-файл в Windows
В блокноте NotePad файл должен храниться с расширением .bat. Необходимо тщательно проконтролировать, чтобы сохраняемый файл имел тип «Все файлы».

Важно! Если невозможно сохранить bat файл в определённой папке из-за отсутствия у пользователя прав администратора, на дисплее компьютера высвечивается сообщение «У вас нет разрешения на сохранение файлов в этом месте». Смените месторасположение файла на «Рабочий стол» или «Документы». После этого с помощью копирования перенесите его в нужное место на компьютере. Файл .bat создан.

Можно ли изменять bat-файл

Для изменения различных параметров файлы с расширением .bat можно редактировать. Этого можно достичь несколькими способами.
Первый. Открыть контекстное меню и выбрать команду Изменить. Необходимые правки вносятся в файл в любом текстовом редакторе, установленном на компьютер.
изменить bat-файл
Второй. Также осуществляется с использованием NotePad. Необходимо открыть «Проводник», найти файл и перетащить его мышью в рабочую область.

Третий. Зайти в Блокнот, в меню «Файл» найти искомую папку с пакетным файлом.

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

Помните! При использовании любого из вышеуказанных способов редактирования конечный файл необходимо обязательно сохранить с применением расширения «Все файлы». В противном случае компьютер сохранит модифицированный файл как текстовый — *.txt.

Нужно запустить bat-файл от имени администратора

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

Есть несколько иных способов запуска командного файла.
1. После нажатия кнопки ПУСК (WIN или комбинация Ctrl+Shift+Esc) необходимо:

  • переключиться на латиницу и набрать на клавиатуре команду .bat.
  • выбрать исполняемый файл *.exe.
  • запустить файл командой «Запуск от имени администратора»

2. Открыть диспетчер задач (Ctrl + Shift + Esc или Ctrl + Alt + Delete), на вкладке «Процессы» выбрать команду «Отображать процессы всех пользователей». В меню «Файл» комбинацией клавиш Ctrl + Клик левой кликнуть на вкладку «Новая задача», затем нажать Выполнить.
3. При включённом отображении типов файлов можно создать файл *.txt, назвать его по своему усмотрению и сменить расширение на .bat.

Почему bat-файл не запускается? Возможные причины

  • неправильное прописывание команд в скриптах
  • некорректное использование знаков препинания

Как создать файл с расширением bat: видео

Видеоурок по созданию файла с расширением .bat смотрите здесь:

Источник: helperlife.top