Создать командный файл который бы удалял все файлы заданного расширения

Обновлено: 07.07.2024

1. Написать командный файл, который будет копировать из текущего каталога все файлы с расширением txt, кроме одного файла, указанного в качестве второго параметра командной строки, в каталог, указанный первым параметром.

2. Создать командный файл, который выводил бы содержимое каталога, указанного в качестве параметра командной строки, причем пользователю должна быть предоставлена возможность выбора устройства для вывода: на экран (информация выводится по одному экрану), в текстовый файл catalog.txt.

3. Написать пакетный файл, который автоматически удалял бы в каталоге, указанном в командной строке все файлы, размер которых превышает 2 Мбайт.

4.Пусть имеется текстовый файл sums.txt с разделителями следующего формата:

Петров Петр Петрович 1450

Иванов Иван Иванович 1200

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

MIN МАХ

где min — минимальная сумма, мах — максимальная сумма, и искал в файле sums.txt всех людей, у которых сумма меньше либо равна мах, но больше либо равна min. Информацию выводить в файл suminfo.txt

5. Проверить существование в текущем каталоге подкаталогов backup1, backup2, buckup3. Если их не существует - создать их. Скопировать все файлы с заданным расширением из текущего каталога в каталоги с именами backup1, backup2, buckup3. Расширение задается параметром командной строки.

6. Разработать пакетный файл movefile.bat на вход которого передается список расширений файлов (например, movefile.bat pas java cpp). Создать в каталоге подкаталоги с соответвующими расширениям именами. Перенести файлы с заданным расширением в свой каталог.

7. Разработать пакетный файл list.bat на вход которого передается список расширений файлов (например, list.bat pas java cpp). Получить списки файлов текушего каталога с указанными в командной строке расширениями. Списки помещаются в фалы, имя которых соответсвует указанному расширению, а тип -lst. Для нашего примера должны быть сформированы три файла pas.lst, java.lst, cpp.lst.

8. Разработать пакетный файл concat.bat на вход которого передается два параметра NAME и EXT (например,concat.bat f txt). Пакетный файл объединяет содержимое исходных файлов вида NAMEn.EXT, где (n=0,1. 9) в файле NAME.EXT. Для объединения использовать команду вида COPY f1.txt+f2.txt f.txt. Обработанные файлы перемещаются в каталог backup.

9. Разработать пакетный файл clear.bat на вход которого передается список расширений файлов (например, clear.bat pas java cpp). Пакетный файл оставляет в текущем каталоге только файлы с указанными расширениями, а остальные перемещает в подкаталог bakup.

10. Создать командный файл, который бы удалял все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: "Расширение не введено", если в текущем каталоге файлов с таким расширением нет, то вывести: "Файлов не найдено".

11. Создать командный файл, который выполнял следующие действия: при вызове с параметром 1 - создавал каталог NEW, с параметром 2 - выводил информацию о текущем каталоге, с параметром 3 - информацию о версии системы, с любым другим параметром - фразу "такая команда не определена".

12. Создать командный файл, при вызове которого указываются фамилии двух студентов. Если первый Иванов, то вывести фразу "В классе будет шумно", если второй Петров, то вывести фразу "В аудитории будет гам". В противном случае вывести фразу "Все спокойно".

13.Создайте командный файл, который копирует все файлы с расширением, заданным в качестве первого параметре из папки, заданной вторым параметром в папку, заданную третьим параметром.

14. Для заданной в качестве параметра скрипта папки найти все файлы, размер которых превышает заданный в качестве параметра.

РЕШЕНИЕ:

1.

@ECHO OFF

If Exist %temp%\excludefiles del %temp%\excludefiles

echo %2 > %temp%\excludefiles

xcopy *.txt %1\ /EXCLUDE:%temp%\excludefiles

2.

@ECHO OFF

CLS

IF -%1==- GOTO NoDir

REM Вывод меню на экран

ECHO A - На экран




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

Командный файл, который компилирует все файлы .asm в поточном каталоге
Добрый день! Помогите пожалуйста составить командный файл, который компилирует все файлы .asm в.

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

Создать командный файл, который выводит в файл содержание личной папки, отсортированное в алфавитном порядке
Создать командный файл, который выводит в текстовый файл содержание личной папки отсортирован в.

anya_anya, здравствуйте!

В системах от Windows Vista и выше запускать батник правой кнопкой "От имени Администратора строго запрещается.
Расширение задавать без точки вначале.
Как вызывать батник с аргументом объясняется здесь: Batch-файл может принимать аргументы запуска
Возможно, еще это понадобится: Русский текст в консоли

В системах от Windows Vista и выше запускать батник правой кнопкой "От имени Администратора строго запрещается.

Подскажите, пожалуйста, в чём моя ошибка?
Хочу удалить из папки ТОЛЬКО файлы с расширением .old и .torrent
Создаю BAT-файл, в котором ниже приведённые строчки:

del /Q %AppData%\Soft_Portable\uTorrent\ *.old
del /Q %AppData%\Soft_Portable\uTorrent\ *.torrent

После запуска этого BAT-файла в папке "uTorrent" удаляются ВСЕ файлы, то есть файлы имеющие другие (не указанные) расширения, например, .exe .lng .dat

Я пробовал указывать команды в BAT-файле следующим способом:

del /Q "%AppData%\Soft_Portable\uTorrent" *.old
del /Q "%AppData%\Soft_Portable\uTorrent" *.torrent

Результат такой же - удаляются ни только файлы с указанными расширениями, а вообще все файлы.

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

P.S. мой BAT-файл находится в совершенно другом месте (допустим, на Рабочем столе)

Добавлено через 18 минут
. хм, минуту назад мог редактировать свой комментарий, а сейчас исчезла такая возможность - неудобно это.
ладно, сам отвечу на свой вопрос (подсказали на другом форуме), надеюсь, и здесь кому-нибудь пригодится:

del /Q "%AppData%\Soft_Portable\uTorrent\*.old"
del /Q "%AppData%\Soft_Portable\uTorrent\*.torrent"

del /Q "%AppData%\Soft_Portable\uTorrent\*.old" "%AppData%\Soft_Portable\uTorrent\*.torrent"

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

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

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

ярлык bat файла

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

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

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

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

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

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

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

как создать bat файл

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

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

Сохранение

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

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

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

bat файлы windows

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

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

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

1. @echo – это команда bat-файлов, которая позволит увидеть работу скрипта в командной строке. Она используется для просмотра хода выполнения рабочего кода. Если у пакетного файла возникают какие-либо проблемы, то данная команда позволит быстро локализировать проблемы. Добавление off дает возможность быстро завершить выполнение кода, избегая вывода ненужной информации на экран.

2. Title предоставляет те же возможности, что и тег <title> в HTML, т. е. создает заголовок для пакетного скрипта в окне командной строки.

3. Call вызывает один bat-файл из другого или подпрограмму внутри одного сценария. Например, функция power вычисляет степень %2 числа %1:

if %counter% gtr 1 (

endlocal & set result=%prod%

команды bat файлов

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

5. Color задает цвет шрифта и фона. Например, команда color f9 задает белые буквы на синем фоне. Команда без параметра восстанавливает установки по умолчанию.

6. Echo служит для вывода информации, а также включения (echo on) или выключения (echo off) такого вывода. Например, команда echo. выводит новую строку без точки, а echo . – точку. Без параметров команда выводит на экран информацию о своем текущем статусе – echo on или echo off.

7. Rem обеспечивает ту же функциональность, что и тег <! в HTML. Такая строка не является частью выполняемого кода. Вместо этого она служит для пояснения и предоставления информации о нем.

9. Set позволяет просмотреть или установить переменные окружения. С ключом /p команда запрашивает у пользователя ввод и сохраняет его. С параметром /а она дает возможность выполнять простые арифметические операции, также присваивая их результат переменной. При операциях со строками не должно быть пробелов ни до, ни после знака равенства. Например, команда set выводит на дисплей список переменных окружения, set HOME – значения аргументов, начинающихся с “HOME”, а set /p input=введите целое: запрашивает ввод целого числа и присваивает его соответствующей переменной.

10. Start "" [веб-сайт] запустит заданный веб-сайт в веб-браузере, используемом по умолчанию.

11. If служит для проверки определенного условия. Если оно истинно, то выполняется следующая за ним команда. Условия бывают 3 видов:

  • ERRORLEVEL число – проверка кода завершения последней выполненной инструкции на соответствие или превышение указанного числа. При этом 0 обозначает успешное выполнение задачи, а любое другое число, обычно положительное, сообщает об ошибке. Например, можно использовать вложенные команды для точного определения кода завершения: if errorlevel 3 if not errorlevel 4 echo произошла ошибка №3.
  • Строка1 == строка2 – проверка совпадения двух строк. Например, при отсутствии внешнего параметра команда if "%1"= ="" goto ERROR передаст управление метке ERROR.
  • EXIST имя – проверка существования файла с указанным именем. Например, if not exist A:\program.exe COPY C:\PROJECTS\program.exe A: копирует программу program.exe на диск А, если ее там нет.

12. Else должна находиться в одной строке с командой If. Указывает на необходимость выполнения следующей инструкции, если выражение окажется ложным.

скрипт bat файла

13. For используется для повторения определенных действий с каждым членом списка. Имеет формат for %%аргумент in (список) do команда. Аргументом может быть любая буква от A до Z. Список представляет собой последовательность строк, разделенных пробелами или запятыми. Подстановочные знаки также могут использоваться. Например:

  • for %%d in (A, C, D) do DIR %%d – последовательно выводит на экран директории дисков А, С и D;
  • for %%f in (*.TXT *.BAT *.DOC) do TYPE %%f – печатает содержимое всех .txt-, .bat- и .doc-файлов в текущей директории;
  • for %%P in (%PATH%) do if exist %%P\*.BAT COPY %%P\*.BAT C:\ВАТ – копирует все пакетные файлы, которые существуют во всех каталогах маршрута поиска в папку С:\ВАТ.

14. Двоеточие (:) перед словом образует из него ссылку, которая позволяет пропускать часть программного кода или возвращаться назад. Используется с командами Call и Goto, указывая, с какого места следует продолжать выполнение bat-файла, например, при выполнении определенного условия:

  • %%a обозначает каждый файл в папке;
  • %CD% – текущая директория;
  • %DATE% – системная дата, формат которой зависит от локализации;
  • %TIME% – системное время в виде ЧЧ:ММ:СС.мм.;
  • %RANDOM% – сгенерированное псевдослучайное число в диапазоне от 0 до 32767;
  • %ERRORLEVEL% – код завершения, возвращаемый последней выполненной командой или bat-скриптом.

Извлечь часть строки, которая содержится в переменной, при известном ее положении и длине можно так:

[начало],[длина]%. Например, показать дату в формате ДД/ММ/ГГГГ как ГГГГ-ММ-ДД можно так: echo %DATE:

17. %цифра – принимает значения параметров, передаваемых пользователем в bat-файл. Могут разделяться пробелами, запятыми или двоеточиями. «Цифра» представляет собой число от 0 до 9. Например, %0 принимает значение текущей команды. %1 соответствует первому параметру и т. д.

18. Shift – команда, используемая для смещения входных параметров на одну позицию. Применяется, когда пакетному файлу передаются внешние аргументы. Например, следующий bat-файл копирует на диск D файлы, заданные в качестве параметров в командной строке:

if not (%1)==() goto next

Кроме того, с аргументами можно производить следующие манипуляции:

строки в bat файлах

Подстановочные знаки

Многие команды принимают шаблоны имен файлов – знаков, которые позволяют установить соответствие с группой имен файлов. К подстановочным знакам относятся:

  • * (звездочка) – обозначает любую последовательность символов;
  • ? (знак вопроса) – заменяет один (или 0) знак, отличный от точки (.).

Например, команда dir *.txt выводит список txt-файлов, а dir . txt – перечень текстовых документов, длина имени которых не превышает 3 букв.

Функции

Как и подпрограммы, они эмулируются с помощью команд call, setlocal, endlocal и меток. Следующий пример демонстрирует возможность определения переменной, в которой сохраняется результат, в строке вызова:

call :say result=world

командная строка

Вычисления

В bat-файлах можно выполнять простые арифметические операции с целыми 32-битными числами и битами с помощью команды set /a. Максимальным поддерживаемым числом является 2^31-1 = 2147483647, а минимальным – -(2^31) = -2147483648. Синтаксис напоминает язык программирования Си. К арифметическим операторам относятся: *, /, %, +, -. В bat-файле % (остаток целочисленного деления) должен вводиться как “%%”.

Операторы с двоичными числами интерпретируют число как 32-битную последовательность. К ним относятся:

(побитовое НЕ или дополнение), & (И), | (ИЛИ), ^ (исключающее ИЛИ), << (сдвиг влево), >> (сдвиг вправо). Логическим оператором отрицания является ! (восклицательный знак). Он изменяет 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-файлов огромна. К счастью, в Сети есть множество страниц, в которых все они перечислены, наряду с переменными пакетного скрипта.

программа bat файлов

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

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

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

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

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

Организатор

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

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

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

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

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

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

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

Цель работы – развитие профессиональных навыков работы с пакетными командными файлами.

Задачи работы:

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

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

получение навыков и умений в удаление структуры каталогов с помощью пакетных командных файлов;

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

Справочно-методический материал

Пример запуска пакетного файла START:

или запуск с параметром:

C:\>class.batИванов Петров Сидоров

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

встроенные команды DOS;

обращения к исполнимым программам;

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

специальные команды для управления выдачей на экран;

специальные команды для организации ветвлений и циклов;

Все эти конструкции, за исключением меток, можно считать командами DOS.

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

Важное свойство пакетных файлов – возможность задания в их текстах формальных параметров. В пакетных файлах могут использоваться формальные параметры %1 - %9. Доступ к параметрам в командном файле осуществляется следующим образом:

%номер_параметра (например, %1 – Иванов, %2 - Петров).

Рассмотрим действие специальных команд, позволяющих управлять интерпретацией командных файлов. К ним, как указывалось, относятся команды GOTO,IF,FOR,SHIFT, а также команда EXIT, играющая особую роль при рекурсивном (вложенном) вызове командных файлов.

Команда GOTO

Команда GOTO позволяет передавать управление на метку и тем самым осуществлять повторное исполнение участков командного файла или, наоборот, обходить некоторые участки (это имеет смысл в сочетании с командой ветвления IF).

Пример. Пусть командный файл PR.BAT имеет вид:

echo off

echo Вывод на принтер файла %1

echo Для остановки нажмите CTRL-C

copy %1 prn

pause

goto m1

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

Начинается циклическое исполнение файла PR.BAT с фактическим параметром DOCUM.DOC. На принтер начнут выдаваться одна за другой копии этого текстового файла, прерываемые паузами после каждой очередной копии. Пользователь может прервать исполнение этого командного файла, нажав одновременно клавиши CTRL-C.

Команда IF позволяет проверять условие и выполнять ветвление в зависимости от результата его проверки.

Она имеет три формата:

Формат 1. Проверка кода завершения какой-либо программы, сработавшей перед оператором IF.

Используется конструкция следующего вида:

IF ERRORLEVEL <N>

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

Формат 2. Проверка наличия файла в каталоге.

В этом случае начало оператора IF имеет вид:

IF EXIST <расширенное имя файла>

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

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

Соответствующая конструкция может иметь вид:

IF %<N> == <текстовая строка>

Здесь значение формального параметра %<N> сопоставляется с конкретной строкой. При абсолютном совпадении двух строк условие считается выполненным.

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

Соответствующая конструкция может иметь вид:

-строка1==-строка2 (например, -%1==-Петров)

EXISTимя файла (условие ИСТИНА, когда файл существует)

NOT EXISTимя файла (условие ИСТИНА, когда файл не существует)

Команда FOR

Команда FOR обеспечивает циклическое выполнение команд DOS. При этом можно задать формальный параметр и список фактических параметров (обычно – имен файлов), которые последовательно подставляются вместо формального параметра в текст исполняемой команды.

Пусть имеется необходимость систематически копировать файлы PROG.PAS PROG.OBJ и PROG.EXE из рабочего каталога на виртуальный диск E:. С этой целью можно в соответствующем командном файле дать команду:

for %%A in (PAS OBJ EXE) do copy PROG.%%A е:

Здесь формальный параметр %%A последовательно сопоставляется со списком фактических параметров в круглых скобках и используется в команде COPY, которая в данном случае сработает 3 раза подряд.

Подставив в качестве второго аргумента команды COPY вместо имени Е: еще один формальный параметр %1, можно будет менять назначение копирования, задавая его с терминала.

Два следующих подряд знака % должны предшествовать формальному параметру только в командных файлах. При употреблении команды FOR непосредственно с терминала используется одиночный знак %.

Команда SHIFT

Команда SHIFT вызывает сдвиг списка формальных параметров относительно списка фактических параметров.

Так, если в командном файле фигурируют формальные параметры %1 и %2, а в обращении к командному файлу - фактические параметры A, B, C, D, то сначала соответствие формальных и фактических параметров выглядит следующим образом:

Однократное применения команды SHIFT дает следующее соответствие:

Двукратное применение вызывает дальнейший сдвиг

Таблица 2 – Основные команды пакетных командных файлов.

Название команды

Синтаксис команды

Комментарии в командном файле

Rem <любые символы>

Выключение вывода команд на экран

Приостановка выполнения командного файла

Переходы в командном файле

Проверка условий в командном файле *

Циклическое выполнение команд

FOR<параметр>IN(набор)DO команда [параметры и ключи для указанной команды]

Пример: командный файл lesson0.bat

remПроверяем введенный параметр – это Петров? если да, идем на меткуP

remПроверяем введенный параметр – это Иванов? если да, идем на меткуI

remЕсли ни Иванов, ни Петров, то идем в конец файла

remВыводим характеристику Петрова

remВыводим характеристику Иванова

remКонец командного файла

Порядок выполнения работы

В корневом диске с помощью командной строки создать дерево каталогов как показано на рисунке.


В каталоге Allс помощью командной строки создать следующие файлы: 1.txt, 2.txt, 3.txt,lab1.pas,lab2.pas,face.bmp,foot.bmp,arm.bmp,beatles.mp3,rock.mp3.

Создать пакетный командный файл lesson1.batв каталогеAll, описать следующую последовательность команд и прокомментировать каждую из них.

Удалить каталог В3, в каталоге А1, создать подкаталоги В4 и В5 и удалить каталог В2.

Скопировать файл lab1.pasв каталог А2 и переименовать его в файлlab3.pas.

Очистить экран от служебных записей.

Вывести на экран поочередно информацию, хранящуюся во всех текстовых файлах в каталоге All.

Скопировать все графические и текстовые файлы из каталога Allв каталог С2.

Объединить все текстовые файлы, хранящиеся в каталоге С2, в файл man.txtи вывести его содержимое на экран.

Скопировать файл man.txtв директорию А1.

Вывести на экран информацию о структуре каталога All.

Создать пакетный командный файл lesson2.batв каталогеAll, решающий определенную задачу (по вариантам):

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

Создать командный файл, который бы выводил на экран все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: «Расширение не введено», если в текущем каталоге файлов с таким расширением нет, то вывести: «Файлов не найдено».

Создать командный файл, который бы удалял все файлы заданного расширения. Если расширение при вызове командного файла не заданно вывести: «Расширение не введено», если в текущем каталоге файлов с таким расширением нет, то вывести: «Файлов не найдено».

Создать командный файл, при вызове которого указываются фамилии студентов, выполняющих лабораторную работу. Если такой студент один, вывести на экран «Работает один». Если их двое, то вывести «две головы лучше». Если больше двоих, то «Толпа». Если никто не работает, то «Где все?».

Создать командный файл, при вызове которого указывается модель процессора семейства IntelPentium(I,II,III,IV). Каждой такой модели сопоставить тактовую частоту и вывести её на экран.

Создать командный файл, при вызове которого указывается марка автомобиля. Каждой такой марке сопоставить максимальную скорость и вывести её на экран. Если такой марки нет, то вывести «Не существует, Вы ошиблись».

Создать командный файл, который выполнял следующие действия: при вызове с параметром 1 – создавал каталог NEW, с параметром 2 – выводил информацию о текущем каталоге, с параметром 3 - информацию о версии системы, с любым другим параметром – фразу «такая команда не определена».

Создать командный файл, при вызове которого указываются фамилии двух студентов. Если первый Иванов, то вывести фразу «В классе будет шумно», если второй Петров, то вывести фразу «В аудитории будет гам». Если первый Иванов и второй Петров, то вывести фразу «Аудитории вообще не будет». Если их нет, то вывести фразу «Все спокойно».

Создать командный файл, с помощью команды PAUSEреализовать следующие действия: вывести на экран «Отформатировать диск С:\? Да/Нет» и дождаться реакции пользователя, после любого действия пользователя вывести на экран «Вы точно хотите отформатировать диск С:\ ? Да/Нет» и дождаться реакции пользователя, далее вывести «Диск С:\ - отформатирован. До встречи.»

Содержание отчета:

цели и задачи лабораторной работы;

задание на лабораторную работу;

результаты выполненной работы;

Контрольные вопросы

Что такое пакетный командный файл?

Как вызывается пакетный командный файл?

Как добавить комментарии в пакетный командный файл?

Какие функции выполняет команда FOR?

Как выполняются переходы в пакетном командном файле?

Возможно ли проверка условий в пакетном командном файле, если да то, как она организована?

Файл: 2 лаба.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлена: 14.07.2019

Скачиваний: 44

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Разработать и выполнить командные файлы (КФ), выполняющие следующие функции:

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

Необходимо поменять кодировку Кодировка – Кодировки – Кириллица – OEM 866

Рисунок 1 Документ 1. bat

Среди введенных с клавиатуры целых чисел (использовать SET / P ) найти наибольшее и наименьшее. Признак конца ввода – знак -.

С помощью команды ECHO OFF можно отключить дублирование команд, идущих после нее (сама команда ECHO OFF при этом все же дублируется).

:BegLoop – начало цикла

Например, для ввода значения переменной M c помощью клавиатуры следует использовать команду

SET / P M =[введите M ]

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

IF NOT DEFINED если переменная не существует

GOTO ExitLoop – вернуться в конец цикла

Меньше или равно

Больше или равно

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

При включенной расширенной обработке команд (этот режим в Windows XP используется по умолчанию) имеется возможность рассматривать значения переменных среды как числа и производить с ними арифметические вычисления (используются ТОЛЬКО целые числа). Для этого используется команда SET с ключом /A .

С помощью ключа /R можно задать рекурсию в команде FOR :

FOR /R [[диск:]путь] %переменная IN (набор)

DO команда [параметры]

В этом случае заданная команда выполняется для каталога [диск:]путь , а также для всех подкаталогов этого пути.

Если вместо набора указана только точка (.), то команда проверяет все подкаталоги текущего каталога.

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

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

Второй способ использования команды IF — это проверка существования заданного файла. Синтаксис для этого случая имеет вид:

IF [ NOT ] EXIST файл команда1 [ ELSE команда2]

Условие считается истинным, если указанный файл существует.

Из переменной %i выделяется только имя файла

Из переменной %i выделяется расширение имени файла

EXIT /B - Предписывает завершить текущий пакетный файл-сценарий вместо завершения CMD.EXE. Если выполняется вне пакетного файла-сценария, то будет завершена программа CMD.EXE

6. Удаление из каталога, заданного первым параметром, файлов, которые присутствуют и в каталоге, указанным вторым параметром. Предусмотреть запрос пользователю на подтверждение удаления.

Самые широкие возможности имеет команда FOR с ключом /F :

FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]

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

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

DIR Вывод списка файлов и подкаталогов в указанном каталоге.

/A Отображение файлов с указанными атрибутами. D Каталоги.(не выводит имена каталогов)

/B Вывод только имен файлов.

Команда del удаляет заданные файлы через командную строку.

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

/f - Задание удаления файлов с атрибутом «Только чтение».

/a - Удаление файлов с заданными атрибутами.

7. В каталоге, указанном первым параметром КФ, и его подкаталогах, найти файлы, созданные во второй половине рабочего дня (после 14 часов) и скопировать их в отдельный подкаталог.

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

Если для получения значения переменной вместо знаков процента (%) использовать восклицательный знак (!) и предварительно включить режим связывания времени выполнения командой SETLOCAL ENABLEDELAYEDEXPANSION .

Самые широкие возможности имеет команда FOR с ключом /F :

FOR /F ["ключи"] %переменная IN (набор) DO команда [параметры]

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


DIR Вывод списка файлов и подкаталогов в указанном каталоге.

/A Отображение файлов с указанными атрибутами. D Каталоги.(не выводит имена каталогов)

/B Вывод только имен файлов.

/S Отображение файлов из указанного каталога и всех его

Наконец, с помощью конструкции

Назначение команды - поиск строк в текстовых файлах.

/I Определяет, что поиск будет вестись без учета регистра.

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

Таблица 2. Операторы сравнения в IF

rem выставляем пороговое время на 14:00 и убираем разделитель ":"

rem ищем все файлы с расширением ". jpg ", в папке E :\ VIDEO \ и всех его подкаталогах.

for /f %%I in ('dir /b/s/a-d "%WORKPATH%" ^| findstr /i ".jpg"') do (call :1 "%%I")

rem форматируем дату/время создания файла и извлекаем переменную времени

rem сравниваем время создания файла (больше, либо равно) с нашим пороговым значением, и копируем такие файлы в D :\ video \

Читайте также: