Написание батников/сценариев (cmd). Bat написание


Ответы@Mail.Ru: написание Bat файла

Надо запускать батник прямо с флешки. Тогда достаточно будет одной команды: copy c:\123\*.* Без указания второго параметра команда copy копирует файлы в текущий каталог, то есть на флешку.

гугл: бат комманда первая строка щёлк ищем что нуно!

Вариант 1 Правая кнопка мыши на c:\123, копировать, два клика левой по f:\ и правой кнопкой - вставить :) Вариант 2 Использовать total comander или dos navigator. (F5 - копировать) Вариант 3 Пуск\выполнить\cmd в окне прописать help и внимательно читать описания команд. Файл может быть как bat так и cmd, разницы нет. Батник создается из простого txt, нужно только сменить расширение (.txt заменить на .bat), внутри используешь команды которые есть в хелпе (читай вариант 3)

хсору "С: \123\*.*" "Ф: \123\" /в (галочка) /р (англ ар) /у (игрек) Тут все по-русски, перепиши по-английски.

вот батник, который проверит есть ли там где он лежит каталог temp если нет - создаст и скопирует в него все из c:\123\ только %СD% - перепиши английскими буквами, а то тут режет, пришлось C русскую поставить ------------------------------------------------------------------ @echo off :: проверка есть ли каталог куда копировать if not exist %СD%temp ^ mkdir %СD%temp :: копируем xcopy /e /r /y c:\123 %СD%temp ------------------------------------------------------------------

команда икскопи

touch.otvet.mail.ru

batch-file - Написание простого файла bat?

ETA:

На самом деле, я хочу проверить, содержит ли архитектура строку 64. Что-то вроде:

if %ARCH% == '*64*' ( echo ok )

Как я могу это сделать?

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

echo %ARCH% | findstr 64

который найдет любую строку на выходе, содержащую 64. В этом случае есть только одна строка, но это нормально.

Однако это также приводит к выводу строки на экране, поэтому измените ее на следующее:

echo %ARCH% | findstr 64 > nul 2>&1

который перенаправляет любой вывод (включая сообщения об ошибках) в ничто.

Теперь findstr устанавливает специальное значение (код выхода или уровень ошибки) в зависимости от того, найдена ли строка или нет. Вы можете использовать это, чтобы проверить, действительно ли 64 появился на выходе:

echo %ARCH% | findstr 64 > nul 2>&1 if errorlevel 1 ( echo 64 did NOT appear (error level greater 0 usually means failure) ) else ( echo 64 DID appear )

К исходному вопросу:

Начальная скобка должна происходить в той же строке, что и сам оператор if:

@echo off set ARCH=%PROCESSOR_ARCHITECTURE% if %ARCH% == x86 ( rem ... )

работает.

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

@echo off set ARCH=%PROCESSOR_ARCHITECTURE% if %ARCH% == x86 ^ ( rem ... )

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

И да, использование одинарных кавычек для литерального строкового значения в сравнении приведет вас к другим проблемам, поскольку

qaru.site

Написание Bat скриптов своими руками

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

ASSOC — Отображает или модифицирует связи расширений файлов

AT — Планирует команды и программы для выполнения на компьютере.

ATTRIB — Отображает или изменяет атрибуты файла.

BREAK — Устанавливает или отменяет проверку комбинации [Ctrl+C].

CACLS — Отображает или модифицирует списки управления доступом (ACLs) для файлов.

CALL — Вызывает один *.BAT-файл из другого.

CD — Отображает имя или изменяет имя текущей директории.

CHCP — Отображает или устанавливает номер активной кодовой страницы.

CHDIR — Отображает имя или изменяет имя текущей директории.

CHKDSK — Проверяет диск и отображает отчет о состоянии.

CLS — Очищает экран.

CMD — Стартует новый экземпляр интерпретатора команд Windows NT.

COLOR — Устанавливает цвета по умолчанию для переднего и заднего плана консоли.

COMMAND — Стартует новую копию интерпретатора команд Windows.

COMP — Сравнивает содержимое двух файлов или установки файлов.

COMPACT — Отображает или видоизменяет сжатие файлов на патрициях Windows NT(NTFS).

CONVERT — Конвертирует FAT томов к формату файловой системы Windows NT(NTFS). Вы не можете конвертировать текущий диск.

COPY — Копирует один или больше файлов на другое место.

CTTY — Изменяет терминальное устройство, используемое для управления вашей системой.

DATE — Отображает или устанавливает дату.

DEL — Удаляет один или более файлов.

DEBUG — Выполняет отладку, тестирование программ и редактирование инструментальных средств.

DIR — Отображает список файлов и поддиректорий в директории.

DISKCOMP — Сравнивает содержимое двух дискет.

DISKCOPY — Копирует содержимое одной дискеты на другую.

DOSKEY — Редактирует командные строки, восстанавливает команды Windows и создает макрос.

ECHO — Отображает сообщения, или включает/выключает вывод команд.

EMM386 — Включает/выключает поддержку расширенной памяти EMM386.

ENDLOCAL — Заканчивает локализацию изменений окружающей среды в *.BAT-файле.

ERASE — Удаляет один или более файлов.

EXIT — Прекращает выполнение программы «CMD.EXE» (интерпретатор команд).

EXTRACT — Средство извлечения информации из CAB — файлов.

FC — Сравнивает два файла или установки файлов, и отображает различие между ними.

FIND — Ищет текстовую строку в файле или файлах.

FINDSTR — Поиск строк в файлах.

FOR — Выполняет указанную команду для каждого файла в наборе файлов.

FORMAT — Форматирует диск для использования с Windows.

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

GOTO — Направляет интерпретатор команд Windows NT к помеченной строке в *.BAT-файле.

GRAFTABL — Способность Windows отображать символы псевдографики, вставленные в графическом режиме.

HELP — Обеспечивает информацию Help для команд Windows.

IF — Выполняет обработку условия в *.BAT-файле.

KEYB — Конфигурирует клавиатуру для заданного языка.

LABEL — Создает, изменяет, или удаляет метку тома на диске.

LOADHIGH(LH) — Загружает программу в верхние адреса памяти.

MD — Создает директорию.

MEM — Отображает величину используемой и свободной памяти в вашей системе.

MKDIR — Создает директорию.

MODE — Конфигурирует системное устройство.

MORE — Отображает вывод одного экрана за раз.

MOVE — Перемещает один или более файлов из одной директории в другую на том же диске.

NETSTAT — Отображает статистики протоколов и текущих сетевых соединений TCP/IP.

NLSFUNC — Загружает информацию, специфическую для страны.

PATH — Отображает или устанавливает путь поиска для выполняемых файлов.

PAUSE — Приостанавливает обработку *.BAT-файла и отображает сообщение.

POPD — Восстанавливает предыдущее значение текущей директории, сохраненной по PUSHD.

PRINT — Печатает текстовый файл.

PROMPT — Изменяет подсказку к командам Windows.

PUSHD — Сохраняет текущую директорию, потом изменяет.

RD — Удаляет директорию.

RECOVER — Восстанавливает читаемую информацию с плохого или дефектного диска.

REM — Записывает комментарии (примечания) в *.BAT-файлы или CONFIG.SYS.

REN — Переименует файл или файлы.

RENAME — Переименует файл или файлы.

REPLACE — Заменяет файлы.

RESTORE — Восстанавливает файлы, которые были архивированы с использованием команды BACKUP.

RMDIR — Удаляет директорию.

SET — Отображает, устанавливает или удаляет переменные среды Windows.

SETLOCAL — Начинает локализацию изменений среды в *.BAT-файле.

SETVER — Устанавливает номер версии MS-DOS, который Windows сообщает программе.

SHIFT — Сдвигает позицию замещаемых параметров в *.BAT-файле.

SMARTDRV — Инсталлирует и конфигурирует утилиту кэширования диска SMART — драйва.

SORT — Сортирует входной поток.

START — Стартует отдельное окно для выполнения указанной программы или команды.

SUBST — Связывает путь с литерой диска.

SYS — Копирует файлы системы MS-DOS и интерпретатор команд на указанный вами диск.

TIME — Отображает или устанавливает системное время.

TITLE — Устанавливает заголовок окна для сеанса «CMD.EXE» .

TREE — Графически отображает структуру директория в драйве или путь.

TYPE — Отображает содержимое текстового файла.

VER — Отображает версию Windows.

VERIFY — Сообщает Windows, проверять ли правильность записи файлов на диск.

VOL — Отображает метку дискового тома и серийный номер.

XCOPY — Копирует файлы и деревья директории.

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

Командная строка, батники\сценарии (bat, cmd) 

27sysday.ru

Руководство Написание Bat Файл

Руководство Написание Bat Файл' title='Руководство Написание Bat Файл' />Раздел Компьютер Windows BAT файлы, командная строка. Для написания сложных программ это довольно мало, хотя для. Руководство Написание Bat Файл' title='Руководство Написание Bat Файл' />Создание bat файлов. Люди, которым знаком термин батник, знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их правильно писать и использовать. В этой статье я расскажу о том, как создавать BAT файлы и познакомлю вас с распространенными ошибками, которые обычно возникают при их написании. Создать BAT файл очень просто. Руководство Написание Bat Файл' title='Руководство Написание Bat Файл' />Некоторые команды и переменные, использованные при написании примеров. Если bat файл исполняется под управлением Windows не в чистом. Люди, которым знаком термин батник, знают, что BAT файлы могут существенно упростить жизнь и экономить время, если уметь их. Пакетные или batch файлы это обычные текстовые файлы, содержащие наборы команд интерпретатора и имеющие расширение. Достаточно открыть блокнот и сохранить пустой лист с расширением. Сохранить как. Тип файла указываете как на скриншоте ниже Все файлы. Сохраняете и получаете BAT файл. Редактировать BAT файл можно в блокноте или любом другом текстовом редакторе, ориентированным на работу с кодом. Теперь перейдем непосредственно к практической информации. В сети многие ищут ответ на вопрос Как быть с пробелами в BAT файлах В путях к папкам и исполняемым файлам наличие пробела вызывает ошибку. Самый распространенный ответ Заключи путь в кавычки. И этот ответ не верен. Правда некоторые будут с пеной у рта утверждать, что он работает. Итак, появилось два почему почему не верен и почему некоторые будут. На Windows как, впрочем, и на UNIX установленные в системе программы соответствующим образом регистрируются системой. Руководство Написание Bat Файл' title='Руководство Написание Bat Файл' />Поэтому некоторые из установленных программ могут запускаться одной простой командой из BAT файла или из апплета Выполнить панели Пуск. Одной из таких программ является Firefox start firefox. Если после этой команды писать путь к исполняемому файлу, то происходит следующее запускается обозреватель Firefox и пробует обработать запрос, то есть файл, путь к которому указан. То есть, если указать следующее start firefox C Program FilesMozilla Firefoxfirefox. Обозреватель откроется, чтобы не было написано после start firefox. Именно поэтому некоторые товарищи будут уверять что все прекрасно работает. Однако, если взять портативную программу, то ситуация окажется совсем иная. Рассмотрим в качестве примера ftp клиент Filezilla. Поскольку система не знает о программе, вышеупомянутая строчкаstart filezillaработать не будет. Чтобы запустить неизвестную системе программу, надо указать к ней путь start D File. ZillaFile. Zilla. Длинныe имена в bat файлах. Pdf Creator Переворачивает Страницы. Пакетный файл с расширением. Руководство Написание Bat Файл' title='Руководство Написание Bat Файл' />Теперь поговорим о путях и пробелах. Первый способ избежать этой проблемы использование короткого имени. C Program FilesSound Clubscw. В примере два имени с пробелами. Заменим их короткими. Правила создания коротких имен следующие в коротком имени используются первые шесть символов имени без учета пробелов, после имени указывают порядковый номер папки с помощью символа. Так как папки Program Files и Sound Club у меня в единственном числе, получится следующее Program Files Progra1. Sound Club Sound. C1start C Progra1Sound. C1scw. exe. Если рядом будут присутствовать две папки, например Sound Club и Sound Clown, то следуя правилам, в примере выше надо будет указать Sound. C2, так как в этом случае Sound Club окажется вторым именем имена считаются в алфавитном порядке. Но этот способ неудобен тем, что приходится указывать порядковые номера. Ситуация с Program files более менее нормальная. Мало у кого встретится две подобные папки на системном диске. Но если вы решили установить несколько продуктов Mozilla на свой компьютер. У вас получится несколько папок, например Mozilla Firefox. Mozilla Thunderbird. Mozilla Sunbird. Короткими именами для них будут. Mozill1. Mozill3. А теперь представьте, что вы написали BAT файл с упоминанием этих программ. Если удалить Firefox, оставшиеся записи перестанут работать, а если удалить Thunderbird, перестанет работать запись для Sunbird. Короче, способ с короткими именами не наш способ. Пробелы и кавычки в bat файлах. Кавычки на самом деле работают, но не с теми способами, которые обычно советуют. Советуют обычно следующее start. Этот параметр необязательный, но его вс же советуют указывать например, тут, чтобы избежать ошибок при выполнении команды. Внутри кавычек можно ничего не писать. Получится так start. В таких случаях я могу посоветовать использовать команду cd. Переходим на системный раздел, затем с помощью cd в папку Program Files и запускаем программу start System. Drivecd Program FilesSound Club. Я думаю, что такой способ будет работать везде. Теперь еще пара важных моментов. Допустим вы создали батник, запускающий три программы и вам нужно на время исключить запуск одной из трех. Это можно сделать удалением строки или ее комментированием. Первый способ вандальный, а второй смотрите ниже. В данном случае отключен запуск установленной в системе программы Defraggler. Комментируют строки, указывая команду rem в начале строки. Все BAT файлы выполняются в окне консоли. Чтобы оно исчезало по окончании выполнения команд, не забывайте в конце писать команду на выход exit. Запуск приложений из bat файла. В первой части статьи я в общих чертах рассказал о BAT файлах. Теперь стало понятно что это такое и с чем его едят. Во второй части речь пойдет уже о более конкретных вещах. Например, о том, как при помощи BAT файла запустить несколько приложений с определенными настройками или в автоматическом режиме установить программу, чтобы не тратить время на ответы типа Вы согласны с условиями лицензионного соглашения Самый первый это короткая команда на запуск установленной в системе программы. Это не всегда работает. Поэтому такой прием можно вполне применять на какой то конкретной системе, но в качестве универсального решения он не подходит. Если есть цель заставить работать BAT файл везде и всегда, нужно пользоваться полными путями start C. Например, скомандовать запускаться свернутой start min D File. ZillaFile. Zilla. Скомандовать в данном случае значит указать ключ. Ключ указывается через слэш после основной команды команда ключ. Основной командой в данном случае является start. Правда ключ min работает только в половине случаев, потому как относится именно к команде запуска start, а не к программам, которые эта команда запускает. Вообще ключей существует очень много и наборы ключей разных программ могут существенно различаться. Есть, правда, несколько общих. Например, ключ справки Чтобы проследить работу этого ключа, рассмотрим практический пример. Откройте консоль Жмте     R, вводите cmd, далее Enter и набираете в консоли следующее start Консоль выведет на экран перечень допустимых ключей c комментариями для команды start. Обратите внимание на ключ wait. В некоторых случаях он бывает просто незаменим. Например, вы решили с помощью BAT файла распаковать архив с программой и эту самую программу запустить. В батнике получится две команды на распаковку и на запуск. Поскольку команды при запуске BAT файла выполнятся почти одновременно, архив распаковаться не успеет и запускать будет нечего. Поэтому будет ошибка. В этом случае на помощь придет ключ wait Таким образом система сначала выполнит первое действие, дождется его завершения и только после этого приступит ко второму. Если необходимо подождать конкретный отрезок времени, то проще воспользоваться консольной утилитой Sleep. В нужном месте BAT файла пишете следующую команду число количество секунд start Sleep. С помощью ключей можно делать многое. Есть возможность устанавливать приложения в тихом режиме. Для этого используется несколько ключей в зависимости от типа инсталятора, применяющегося для установки программы на компьютер S. В ряде случаев бывает очень удобно. Антивирус Avast имеет опцию тихой установки в корпоративной версии. В бесплатной домашней версии тихой установки якобы нет. Однако, если вы в курсе как работает инсталятор Install. Shield, вы поймете, что это утка, так как этот инсталятор сам по себе поддерживает ключ тихой установки S. А значит все продукты, выполненные на его базе тоже. И Avast не исключение. Просто создаете в папке с Avastом BAT файл с содержаниемstart avast. S. exitзапускаете его и программа устанавливается на компьютер практически без вашего участия. Таким образом можно написать целый список программ для тихой установки и сэкономить время, например, на переустановке системы.

hellozone.netlify.com

Работа с командами MS-DOS (написание bat-файла)

Работа с командами MS-DOS (написание bat-файла)Доступные файлы (1):

n1.docx

Содержание

1.Постановка задачи 1

2.Используемые команды 2

Dir 3

For 3

If 5

3.Текст пакетного файла (lab1.bat) 6

4.Тестирование программы 7

5.Вывод 10

1.Постановка задачи

Написать пакетный файл, который будет выполнять следующие действия:

1. Создавать архив для указанной папки.

2. Разархивировать в указанную папку указанный архивный файл.

3. Протестировать все архивные файлы в указанной папке.

4. Переименовывать все файлы к указанной папке, у которых третий символ имени «а».

5. Создавать список файлов для указанной папки и сохранить данный список в файле с

именем “list.txt”.

6. Выводить на экран следующую структуру:

x

xx

xxx

xxxx

xxxxx

………

где количество строк (символов) задается с экрана.Примечания:

Организовать выполнение указанных действий посредством удобного и понятного меню.

2.Используемые команды

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

Dir

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

dir [диск:][путь][имя_файла] [...] [/p] [/q] [/w] [/d] [/a[[:]атрибуты]][/o[[:]порядок_сортировки]] [/t[[:]поле_сортировки]] [/s] [/b] [/l] [/n] [/x] [/c] [/4][диск:][путь] - Задание диска и каталога, список файлов которого будет выведен.

[имя_файла] - Задание файла или группы файлов, сведения о которых требуется вывести.Ключи:

/s - Перечисление всех случаев обнаружения определенного имени файла в указанном каталоге и всех его подкаталогах.

/b - Перечисление каждого имени файла (включая расширение) или каталога на отдельной строке.

Echo

Echo [{on|off}] [сообщение] - Вывод сообщений и переключение режима отображения

команд на экране.Find

FIND [/V] [/С] L7N] [/I] [/OFFCLINE]] "строка" [[диск:][путь]имя_файла[ ...]]

Поиск заданной строки в файле или наборе файлов. Здесь:

• [диск1:][путь1]имя_файла — полный или краткий путь и имя файла, в котором

выполняется поиск;

• строка — строка с образцом текста, по которому осуществляется поиск;

• /I — не различать в процессе поиска заглавный и строчный регистр символов;

For

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

for {%переменная|%%переменная} in (множество) do команда [ПараметрыКоманднойСтроки]

{%переменная|%%переменная} - Обязательный параметр. Замещаемый параметр. %%переменная для выполнения команды for в пакетном файле. Переменные учитывают регистр и могут быть представлены со значением альфа, например, %A, %B или %C.

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

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

ПараметрыКоманднойСтроки - Задает параметры командной строки, которые используются с указанной командой.tokens=x,y,m-n Задает элементы, передаваемые из каждой строки в тело цикла for при каждой итерации. В результате размещаются дополнительные имена переменных. Форма m-n задает диапазон, указывающий элементы с m-го по n-ый. Если последним символом строки tokens= является звездочка (*), то размещается дополнительная переменная, в которую помещается остаток строки после разбора последнего элемента.

Переменная с модификатором:

%~pI - Замена %I на путь.

%~nI - Замена %I одним именем файла.

%~nxI - Замена %I именем файла и расширением.

Ключи:

  • for /R [[диск :]путь] {%% | %}переменная in (множество) do команда [ПараметрыКоманднойСтроки]
Рекурсивная Проходит по дереву каталогов с корнем в [диск:]путь, выполняя инструкцию for для каждого каталога в дереве. Если после ключа /R не задан каталог, предполагается текущий каталог. Если параметр множество задано одной точкой (.), то команда просто перечислит каталоги в дереве
  • for /L {%% | %}переменная in (НачальноеЗначение#,шаг#,КонечноеЗначение#) do команда [ПараметрыКоманднойСтроки]
Итерация диапазона значений , использование переменной итерации для установки начального значения (НачальноеЗначение#), а затем перемещение по диапазону значений, пока значение не превысит конечное значение множества (КонечноеЗначение#). /L выполнит итерацию, сравнив параметр НачальноеЗначение# с параметром КонечноеЗначение#. Если параметрНачальноеЗначение# меньше параметра КонечноеЗначение#, то выполняется команда. Когда переменная итерации превысит параметр КонечноеЗначение#, командная оболочка покидает цикл. Также можно использовать отрицательный параметр шаг# для перемещения в диапазоне убывающих значений. Например, (1,1,5) создает последовательность «1 2 3 4 5», а (5,-1,1) создает последовательность «5 4 3 2 1». Используется следующий синтаксис.
  • ключ /F проверяет только первый маркер. Разбор файлов состоит в чтении вывода, строки или содержимого файла, разбиении его на отдельные строки текста и разборе каждой строки на ноль или маркеры. Цикл программы for затем называется с переменной итерации, установленной в маркер. По умолчанию /F передает первый отделенный пробелом элемент из каждой строки каждого файла. Пустые строки пропускаются. Используется также другой синтаксис.
for /F ["КлючевыеСловаРазбора"] {%% | %}переменная in (МножествоИменФайлов) do команда [ПараметрыКоманднойСтроки]

for /F ["КлючевыеСловаРазбора"] {%% | %}переменная in ("СимвольнаяСтрока") do команда [ПараметрыКоманднойСтроки]

for /F ["КлючевыеСловаРазбора"] {%% | %}переменная in ('команда') do команда [ПараметрыКоманднойСтроки]

МножествоИменФайлов задает одно или несколько имен файлов. Каждый файл открывается, считывается и обрабатывается до перехода к следующему файлу в аргументе МножествоИменФайлов. Goto

goto :метка

В пакетной программе передает управление Windows XP в строку, определенную меткой. Когда метка найдена, выполнение продолжается со следующей за ней строки.

метка - Строка в пакетной программе, к которой выполняется переход.

If

Обработка условий в пакетных программах.

if [not] errorlevel число команда [else выражение] if [not] строка1==строка2 команда [else выражение] if [not] exist имя_файла команда [else выражение]

Если расширения командного процессора разрешены, следует использовать следующий синтаксис: if [/i] строка1 оп_сравнения строка2 команда [else выражение] if cmdextversion число команда [else выражение] if defined переменная команда [else выражение] not - Задает выполнение команды только в случае невыполнения условия.

errorlevel число - Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа.

Команда - Команда, которая должна быть обработана в случае выполнения условия.

exist имя_файла - Условие выполняется, если существует файл с именем имя_файла.

Операторы:

EQU - равно

NEQ - не равноRARRAR - -

список...> команды:

a - Добавить файлы в архив

l[t,b] - Показать содержимое архива [техинфо, только имена файлов]

x - Извлечь файлы с полными путямиSet

SET переменная = значение

переменная – любая строка не содержащая знака равенства и пробела, а значение –

любая строка символов.

Команда SET записывает строку «переменная = значение» в область окружения. Если

переменной до этого было присвоено какое-либо значение, то оно заменяется новым. Если

значение – пустая строка, то строка задающая значение переменной, удаляется из окружения

3.Текст пакетного файла (lab1.bat)

@echo off

rem ***Получаем имя (arh) и путь (pap) для сохранения архива***

:start

set pap=

SET /P pap="Vvedite put' k papke:"

if "%pap%" neq "" (goto :start1

) else (echo Nichego ne vvedeno! &&goto :start)

:start1

if exist "%pap%" (goto :start2

) else (echo Takoi papki ne suchestvuet! Vvedite nazvanie papki pravilno &&goto :start)rem ***Получаем имя архива (arh)***

:start2

set arh=

SET /P arh="Vvedite nazvanie arhiva:"

if "%arh%" neq "" (RAR a %arh% %pap%

) else (echo Nichego ne vvedeno! &&goto :start2)rem ***Сохраним список файлов нашего архива в list.txt***

RAR lb %arh% > %pap%\list.txtrem ***Получаем путь (put) для извлечения файлов из архива***

:start3

set put=

SET /P put="Kuda izvlech faily iz arhiva:"

if "%put%" neq "" (goto :start4

) else (echo Nichego ne vvedeno! &&goto :start3)

:start4

if exist "%put%" (RAR x %arh% %put%

) else (echo Takoi papki ne suchestvuet! &&goto :start5)

:start5

set z=

SET /P z="Sozdat' takuy papku? Esli da nazhmite klavishu i zatem Enter , esli net nazhmite Enter "

If "%z%" equ "1" (mkdir "%put%" &&(RAR x %arh% %put%)

) else goto :start3rem ***Проверка архива***

dir /b/s %put% >list.tmp

for /F "tokens=*" %%i in ('RAR lb %arh% ^| find "."') do (

find /I "%%i" list.tmp>nul

if %errorlevel% equ 0 (echo %%i - YES) else (echo %%i - NO)

)

Del list.tmprem ***Переименование всех файлов с третьей буквой "а" в имени***

for /R %put% %%k in (??a*) do ren %%~pk\%%~nxk new_%%~nxkrem ***Иерархическая структура***

set A=

set /P y="Vvedite kolichestvo strok="

for /L %%j in (1,1,%y%) do (

set A=!A!x

echo !A!

)

4.Тестирование программы

Тестирование производилось посредством командной строки и запуска пакетного файла lab1.bat.

В процессе тестирования были произведены следующие действия:

  1. Для правильной работы пакетного файла (для пункта 6 лабораторной работы) в командной строке необходимо включить ключ /V:ON
  2. Запустить на исполнение пакетный файл lab1.bat.
  3. Ввести путь к папке, которую необходимо заархивировать. (При этом допустим несколько ошибок при вводе: ничего не введём или введём несуществующий путь.)
  4. Ввести имя архива. (допустим ошибку ввода: ничего не введём)
  5. Ввести путь до папки, в которую необходимо извлечь файлы из архива. (допустим несколько ошибок: ничего не введём или введём несуществующий путь)
  6. Ввести количество строк. (5)

Ход тестирования и выполнение программы показан на рисунках 1,2,3,4,5

Рисунок 1 – тестирование программыРисунок 2 – тестирование программыРисунок 3 – тестирование программы

Рисунок 4 – тестирование программы

Рисунок 5 – тестирование программы

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

5.Вывод

В ходе данной лабораторной работы получены навыки работы с командами MS-DOS посредством написания пакетного файла (bat-файла). Изучены процесс архивирования с помощью командной строки, а также такие команды как for, set, if, goto.

1>

perviydoc.ru