1. Главная страница » Компьютеры

Bat работа с файлами

Автор: | 16.12.2019

Bat-файлы Windows являются удобным способом выполнения различных задач на ПК, которым активно пользуются компьютерные умельцы. Они позволяют автоматизировать повседневные задачи, сократить время их выполнения и превратить сложный процесс во что-то посильное рядовому пользователю. В данной статье представлены базовые возможности командных файлов и рекомендации по самостоятельному их написанию.

Автоматизация – это просто

Как создать bat-файл? Для этого нужно выполнить следующие действия:

  1. В любом текстовом редакторе, например, в Notepad или WordPad, создать текстовый документ.
  2. Записать в нем свои команды, начиная с @echo [off], а затем (каждый раз в новой строке) – title [название пакетного скрипта], echo [сообщение, которое будет выведено на экран] и pause.
  3. Сохранить текст в электронном документе с расширением.bat (например, test.bat).
  4. Для запуска следует дважды щелкнуть по только что созданному пакетному файлу.
  5. Чтобы его отредактировать, необходимо кликнуть на нем правой кнопкой мыши и из контекстного меню выбрать пункт «Изменить».

Необработанный файл будет выглядеть примерно так:

title Это ваш первый скрипт bat-файла!

echo Добро пожаловать в сценарий пакетной обработки!

Более подробно о командах bat-файлов и их использовании речь пойдет ниже.

Шаг 1: создание программного скрипта

Предположим, что у пользователя часто возникают проблемы с Сетью. Он постоянно пользуется командной строкой, набирая ipconfig и пингуя Google для устранения неполадок в Сети. Через некоторое время пользователь понимает, что было бы намного эффективнее, если бы он написал простой bat-файл, записал его на свой USB-накопитель и запускал его на компьютерах, которые он диагностирует.

Читайте также:  Geratherm бесконтактный электронный термометр отзывы

Создание нового текстового документа

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

Добавление кода

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

Сохранение

Вышеупомянутый скрипт выводит на экран текст «Добро пожаловать в сценарий пакетной обработки!». Электронный документ необходимо записать, выбрав пункт меню текстового редактора «Файл», «Сохранить как», а затем указать желаемое имя bat-файла. Его следует завершить расширением .bat (например, welcome.bat) и нажать «ОК». Для правильного отображения кириллицы в некоторых случаях следует удостовериться в правильном выборе кодировки. Например, при использовании консоли русифицированной системы Windows NT документ необходимо сохранить в CP866. Теперь следует дважды щелкнуть на ярлыке bat-файла, чтобы активировать его.

Но экране появится надпись:

"Добро пожаловать в сценарий пакетной обработки! Для продолжения нажмите любую клавишу. "

В случае если bat-файл не запускается, пользователи рекомендуют зайти в регистр и удалить ключ:

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

Шаг 2: знакомство с некоторыми командами

Если пользователь ПК знаком с тем, как следует выполнять команды консоли DOS, то он будет мастером создания программных скриптов, потому что это один и тот же язык. Строки в bat-файлах сообщат интерпретатору cmd.exe все, что от него требуется. Это экономит время и силы. Кроме того, есть возможность задать некоторую логику (например, простые циклы, условные предписания и т. д., которые концептуально схожи с процедурным программированием).

Встроенные команды

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 шестнадцатеричное значение.

Внешние команды

  • Exit используется для выхода из консоли DOS или (с опцией /b) только текущего bat-файла или подпрограммы.
  • Ipconfig – это классическая консольная команда, которая выводит информацию о сети. Она включает MAC- и IP-адреса, и маски подсети.
  • Ping пингует IP-адрес, отправляя к нему пакеты данных, чтобы оценить его удаленность и время ожидания (отклика). Также используется для задания паузы. Например, команда ping 127.0.01 –n 6 приостанавливает выполнение кода на 5 с.

Библиотека команд bat-файлов огромна. К счастью, в Сети есть множество страниц, в которых все они перечислены, наряду с переменными пакетного скрипта.

Шаг 3: запись и запуск bat-файла

Следующий скрипт намного упростит ежедневную онлайн-активность. Что делать, если есть желание мгновенно открыть все свои любимые новостные сайты? Поскольку скрипты используют команды консоли, то можно создать сценарий, который открывает каждую новостную ленту в одном окне браузера.

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

Данный скрипт содержит команды start “”, которые открывают несколько вкладок. Можно заменить предложенные ссылки любыми другими на выбор. После ввода скрипта следует зайти в меню редактора «Файл», а затем в «Сохранить как. » и записать документ с расширением .bat, изменив параметр «Тип файла» на «Все файлы» (*. *).

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

Организатор

Если загружать по несколько файлов в день, то в скором времени в папке «Загрузки» их скопятся сотни. Можно создать скрипт, который упорядочит их по типу. Достаточно поместить .bat-файл с программой в папку с неорганизованными данными и дважды щелкнуть для запуска:

rem Каждый файл в папке

rem проверить на наличие расширения и непринадлежность к данному скрипту

rem проверить наличие папки для каждого расширения, и если ее нет, то создать

rem переместить файл в папку

В итоге файлы в директории «Загрузки» сортируются по папкам, названия которых соответствуют их расширению. Это так просто. Данный пакетный скрипт работает с любым типом данных, будь то документ, видео или аудио. Даже если ПК не поддерживает их, сценарий все равно создаст папку с соответствующей меткой. Если уже есть каталог JPG или PNG, то программа просто переместит туда файлы с данным расширением.

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

Для работы с bat-файлами для удобства будем использовать программу FAR.

Небольшое отступление. Те, кому FAR использовать ну совсем не хочется, могут воспользоваться командной строкой Windows: Пуск->Выполнить-> ввести команду cmd Перед вами появится командное окно — эмулятор системы MS DOS.

Для тех, кому работать с GUI[1] приятнее запускает программу FAR Manager.

Alt+F1 (F2) — выбрать диск в левой (правой) панели

Вверх/вниз — перемещение по дереву каталогов

F7 — создать каталог

Shift+F4 — создать файл

F4 — редактировать выделенный файл (F8 – для смены кодировки)

F3 — просмотр выделенного файла (F8 – для смены кодировки)

Enter — зависит от того, где установлен курсов и введена ли команда внизу экрана. Если введена команда — она будет выполнена. Если курсор установлен на имени каталога — мы "зайдем" в каталог. Если на ".." — "поднимемся" на каталог выше. Если курсор стоит на имени файла — результат нажатия Enter’a будет аналогичен двойному щелчку мыши в "Проводнике".

Ctrl+O показать экран с результатами команд.

Ctrl+вверх/вниз — показать область ввода команд (удобно для отладки)

Для изучения bat-файлов будет полезно знать:

· для перенаправления потока вывода используется символ ">".
Пример: пусть в вашем файле выполняется команда echo. Тогда она выведет какой-то текст на экран. Если вам хочется, чтобы все результаты работы вашего bat-файла выводились не на экран, а в файл — наберите в командной строке что-нибудь вида "c:> mybatfile. bat > myoutput. txt". Тогда результаты работы вашего файла mybatfile. bat, находящегося в корне диска c: будут записаны в файл myoutput. txt в том же каталоге.

· Для создания bat-файла можно использовать программу FAR (или аналогичные ей: VC — Volcov Commaner, TC — Total Commander, WinCom — Windows Commander), или использовать встроенную программу "Блокнот" (Notepad). Важно: при сохранения файле в Блокноте нужно указать в поле "Тип файла" не ".txt Текстовые файлы", а ".* Все файлы" и написать полное имя, например, mybatfile. bat. Тогда расширением файла будет именно. bat, а не. txt — расширение по умолчанию.

УПРАЖНЕНИЯ 1 (echo, cls, dir, del, %1)

1. Создаем bat-файл с таким содержимым:

echo "Hello from Politeh!"

Сохраняем файл, запускаем и проверяем, что он работает.

2. Изучаем способ вызова справки по необходимым командам:

for /? — будет выведена справка по команде for

Задание №1: изучить справку команды mkdir и сделать bat-файл (можно просто дополнить первый файл), который будет создавать заданную директорию.

Задание №2: вывести справку по командам for и if в файлы for_help. txt и if_help. txt соответственно. Как это сделать? Читаем "полезное знание №1"

Примечание: когда откроете файл for_help. txt – скорее всего, увидите «кракозябру». Её можно прочитать тремя способами (точнее изменить кодировку с Windows-1251 на CP‑866):

1. открыть файл в Word, он, обычно, автоматически предлагает правильную кодировку

2. открыть файл в FAR (нажав F4), после этого изменив кодировку по команде Shoift+F8

3. открыть блокнотом и изменить шрифт на Terminal.

3. Изучаем команды cls, echo, dir, del. Для этого используем эти команды в собственном bat-файле и убеждаемся, что фактические результаты совпадают с ожидаемыми.

4. Изучаем возможность работы с аргументами: если внутри bat-файла использовать комбинации символов %0, %1,…, %9, то можно получить значения аргументов, переданных системному обработчику вместе с вашим bat-файлом.

Задание №1: создать bat-файл, который должен будет запускаться с двумя параметрами (например, так: mybat. bat 1 22) и выводить такой текст:

где 1 и 22 — это параметры запуска вашего bat-файла.

Задание №2: изменить созданный файл так, чтобы в случае, когда первый параметр — это строка test, выдавалось сообщение "First parameter — !" Для решения задачи используем команду if.

Задание №3. Классика жанра. Написать bat-файл, который удаляет файл, путь к которому задан в виде первого аргумента. Обязательно нужно проверить, существует ли файл с заданным путем или нет (с помощью if exist).

УПРАЖНЕНИЯ 2 (dir, for, goto, path)

Как вывести файлы в каталоге:

«Дешево, надежно и практично»: команда dir Команда for в простом варианте:
FOR %%F IN (*.*) DO ECHO %%F
Все файлы будут выведены друг за другом Чуть более красивый вариант с командой for:
for %%i in (*) do (
echo %%i
echo ——
)
Будут выведены все файлы, причем с разделителями.
Важно: в этом примере показано, как записывать команды не в одну строчку – с использованием обрамляющих круглых скобок. Команда for может использоваться не только для работы с файлами, но и для работы с числами.

В справке по команде for написано:

FOR /L %переменная IN (начало, шаг, конец) DO команда [параметры]

Набор раскрывается в последовательность чисел с заданными началом, концом

и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5),

а набор (5,-1,1) заменяется на (5 4 3 2 1)

FOR /L %%f IN (1,1,10) DO echo %%f

Такой файл выведет последовательность чисел от 1 до 10 включительно.

Метки в bat-файлах

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

if %1==odin goto odin

if %1==dva goto dva

echo End of example

Как тестируем? Правильно: например, mybat. bat odin – должны увидеть радостные возгласы на тему первого параметра J

Очень полезно знать, что прописано в эту переменную, когда вы будете устанавливать какую-нибудь программу типа Visual Studio и т. п. или когда какая-нибудь программа будет писать, что она не может найти какие-нибудь пути.

Как посмотреть, в какие каталоги смотрит Windows, когда ищет файлы: набираем
set path > path.txt и смотрим, что записалось в файл path. txt.

Любознательные могут сравнить значения каталогов с тем, что указано в строке Свойства Системы-> Дополнительно -> Переменные среды.

УПРАЖНЕНИЯ 3 (cmd, del, 8.3, call, set, формулы)

1. Как запустить bat-файл без FAR’a? Пуск->Выполнить‑>"cmd". А дальше используем команды "dir", "cd" и др.

2. Пишем bat-файл удаления другого файла
Вызов: my. bat temp. doc
Схема bat-файла (пишем в несколько строчек!):
if not exist
echo Нет файла
else
del

3. Усложняем: делаем удаление файла с именем больше 8 символов (слушаем про "требование 8.3 для DOS").

4. Пишем bat-файл копирования заданного файла в параллельный каталог Backup (изучаем команды "cd.." , "cd..backup" , "copy myfile. zip ..backup")

5. Передаем переменные между двумя bat-файлами — изучаем команду set

a. Пишем главный файл — main. bat:
call f1.bat mystring
call f2.bat

b. Пишем файл f1.bat
set AAA=%1
echo Новая переменная =%AAA%

c. Пишем файл f2.bat
echo Знаем переменную AAA: %AAA%

d. Добиваемся работоспособности. Для удобства вставляем "@echo off" в начало каждого файла

6. Пишем bat-файл удаления всех файлов в текущем каталоге. Вспоминаем про важное замечание с прошлого занятия.

7. В параллельном каталоге Backup создаем каталог с текущей датой и копируем туда все файлы с расширением "bat" в этот каталог. Если каталога backup нет — создаем его.

[1] GUI = Graphical User Interface — Графический Интерфейс Пользователя — в противоположность текстовому интерфейсу командной строки

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

Чтобы открыть командную строку в нужном месте (в папке с файлами, например), нужно вызвать контекстное меню (ПКМ) с зажатой клавишей Shift :

О том, как работать с командной строкой вы можете прочесть в этой статье. Переходим непосредственно к командам.

Список всех команд консоли с описанием можно получить, набрав в консоли help
Справку по любой команде можно получить при помощи ключа /?
Например: DIR /? выведет справку по всем ключам команды DIR

Удаление временных файлов перед выключением компьютера

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

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

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

Программа CCleaner по-умолчанию отсутствует в Windows. Её нужно установить отдельно. Скачать установщик можно на сайте разработчика.

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

Необходимо создать BAT-файл и скопировать этот пример в него. Ярлык на bat-файл вывести на рабочий стол, назначить ему красивую иконку и выключать компьютер при помощи этого ярлыка-кнопки.

Получить список файлов в папке с помощью Bat-файла

Периодически пользуюсь bat-файлами для получения списков файлов в папках. Частая ситуация: по работе клиенты присылают от фотографа архив с фотографиями. Фотографии имеют названия в соответствии с артикулами товаров.

Никакой текстовой информации, сопровождающей фотографии нет. Необходимо сделать список на основе присланных фотографий и импортировать его в каталог товаров на сайте. Для каждого товара сделано по несколько фото. Они именованы так:

  1. Фото товара с артикулом А1234.jpg
  2. Фото товара с артикулом А1234 (2).jpg
  3. Фото товара с артикулом В1234.jpg
  4. Фото товара с артикулом В1234 (2).jpg

Сначала я получаю список всех файлов, находящихся в папке при помощи следующей команды:

Команда *.jpg позволит учитывать только JPG-файлы при составлении списка. Ключ /B позволит получить список, содержащий только имена файлов, находящихся в папке. Ключ /L выведет все имена в нижнем регистре. Команда >filelist.txt создаст текстовой файл с именем filelist и запишет резутьтат туда.

Следующим шагом нужно избавиться от дублей, чтобы в списке осталось только по одной записи для каждого товара:

Команда findstr будет осуществлять поиск в ранее полученном файле. Ключ /I позволяет искать записи без учёта регистра, а ключ /V записывает строки, в которых отсутствует искомое совпадение. В кавычках указана строка, совпадение с которой нужно фиксировать. И последняя команда > temp.txt запишет в файл temp все результаты, не содержащие в имени "(2)". В результате я получу:

  1. Фото товара с артикулом А1234.jpg
  2. Фото товара с артикулом В1234.jpg

И далее на основе этого текстового списка буду готовить файл для импорта.

Если вам понадобится провести обратную операцию — вывести в файл temp.txt только совпадения, то в списке команд ( findstr /? ) вы не найдёте нужной. Есть только обратный фильтр по точному совпадению — /X .

Для этой задачи можно воспользоваться командой вывода номера строк /N , в которых имеются совпадения (номера выводятся вместе со строкой):

Главное при работе с текстовой информацией (текстовыми файлами) помнить один момент:

Если для текстовых операций вы в качестве исходника используете файл, который создали не через командную строку, он должен быть в кодировке, которая понимается командной строкой. Например, CP1251 (ANSI) .

Иначе рискуете получить на выходе нечто такое:

Скопировать дерево каталогов без файлов

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

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

Команда xcopy берёт за основу дерево каталога по адресу folder_1 и создаёт его копию в папке folder_2 . Ключ /T позволяет осуществить копирование каталогов, не копируя файлы, лежащие в них. Ключ /E уточняет, что копировать необходимо все каталоги, в т.ч. пустые.

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

Читать далее:

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

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

В принципе в командной строке Windows всё просто. Любой, кто умеет печатать, сможет без труда работать в ней. Но для человека непосвященного командная строка может показаться сложной. Чтобы без проблем освоиться, надо знать основные команды и общие правила работы.

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

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

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