set name=Vasya
echo %name%
В этом примере демонстрируется возможность создания переменной с именем name и присвоения ей значения Vasya. Если нужно вывести значение переменной на экран, то ее имя должно заключаться между символами %.
Для ввода данных используется конструкция set /p
файл primer3.bat
@echo off
Rem Диалог с пользователем
set /p name="Enter your name - "
echo Your name is - %name%
В этом диалоге сначала запрашивается имя пользователя, а затем оно выводится на экран.
IF – исполняет команды при выполнении условий. С помощью IF можно задавать выполнение какой-либо команды в зависимости от некоторого условия. Общий вид:
IF [NOT] условие команда
NOT – отрицает заданное условие;
Условие – может быть задано одним из следующих способов:
ERRORLEVEL | Проверяет код завершения только что выполненной программы. При нормальном завершении передает код 0; при ошибочном - код ERRORLEVEL равен 1. |
Цепочка_символов1==цепочка_символов2 | Условие выполняется только в том случае, когда обе символьные цепочки идентичны. Как правило, Цепочка_символов1 является переменной |
EXIST обозначение | Условие выполняется, если заданные параметром «обозначение» файл, каталог или устройство существуют |
С помощью условия EXIST можно проверить наличие дисководов, если указать путь доступа, например, B:\
GOTO – позволяет определять команды переходов в пакетных файлах. Переходы требуются в тех случаях, когда определенные команды должны обрабатываться только при выполнении некоторого условия. Общий вид:
GOTO метка_перехода
где метка_перехода обозначает место, в которое оператор GOTO должен передать управление.
Пример1. Пакетный файл primer1.bat
@echo off
cls
if not exist c:\temp\sozdan.bat goto f
C:
cd c:\temp
sozdan
goto end
:f
echo File not found
:end
Этот пакетный файл сначала очищает экран дисплея, затем проверяет (через команду if not exist), отсутствует ли файл с именем sozdan.bat в каталоге C:\Temp, и если это так, то передает управление на метку :f. Метки перехода обозначаются двоеточием в начале. После этого на экран дисплея выводится сообщение: “File not found!!”
При запуске пакетный файл может принимать параметры из командной строки. Параметры нумеруются символами %1, %2, %3,…%9 с обязательным разделительным пробелом. При вызове соответствующий % заменяется на параметр.
Таким образом, пакетный файл primer1.bat может быть запущен с параметром sozdan.bat, а в соответствующем месте в тексте файла нужно указать символ %1.
Пример2. Пакетный файл primer2.bat
@echo off
cls
if not exist c:\temp\%1 goto f
C:
cd c:\temp
%1
goto end
:f
echo File not found
:end
FOR – пакетная команда для многократного повторения какой-либо команды. Формат команды:
FOR %%переменная IN (значение) DO команда [параметры]
переменная – не может быть цифрой; используется для того, чтобы получить текущее значение и передать его дальше;
значение – может быть именем файла (с указанием пути или без него), именем каталога или символьной цепочкой. В именах файлов допустимы символы подстановки (* ИЛИ ?);
команда – команда MS-DOS, подлежащая многократному выполнению;
параметры – параметры или ключи для выполняемой команды MS-DOS.
Пример3. В каталоге C:\Temp находятся файлы if . txt , goto . txt , for . txt , rem . txt , echo . txt . Создать пакетный файл, который последовательно и постранично выведет на экран содержимое этих файлов.
Пример3. Пакетный файл primer3.bat
@echo off
cls
for %%A in (*.txt) do type %%A|more&pause
Rem – вводит комментарий в командном файле.
Пакет Windows NT Resourse Kit содержит другие полезные утилиты для работы с пакетными файлами.
При запуске пакетных файлов в командной строке можно указывать произвольное число параметров, значения которых можно использовать внутри файла. Это позволяет, например, применять один и тот же командный файл для выполнения команд с различными параметрами.
Для доступа из командного файла к параметрам командной строки применяются символы %0, %1, …, %9 или %*. При этом вместо подставляется имя выполняемого пакетного файла, вместо %0%1, %2, …, %9 — значения первых девяти параметров командной строки соответственно, а вместо %* — все аргументы. Если в командной строке при вызове пакетного файла задано меньше девяти параметров, то "лишние" переменные из %1 – %9 замещаются пустыми строками. Рассмотрим следующий пример. Пусть имеется командный файл copier.bat следующего содержания:
@ECHO OFF CLS ECHO File %0 copying directory %1 in %2 XCOPY %1 %2 /S
Если запустить его из командной строки с двумя параметрами, например
copier.bat C:\Programs D:\Backup
то на экран выведется сообщение
File copier.bat copying directory C:\Programs in D:\Backup
и произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup.
При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT, которая изменяет значения замещаемых параметров с %0 по %9, копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0, значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9. Если же такой параметр не задан, то новое значение %9 — пустая строка.
Рассмотрим пример. Пусть командный файл my.bat вызван из командной строки следующим образом:
my.bat p1 p2 p3
Тогда %0=my.bat, %1=p1, %2=p2, %3=p3, параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=p1, %1=p2, %2=p3, параметры %3 – %9 – пустые строки.
При включении расширенной обработки команд SHIFT поддерживает ключ /n, задающий начало сдвига параметров с номера n, где n может быть числом от 0 до 9.
Например, в следующей команде:
SHIFT /2
параметр %2 заменяется на %3, %3 на %4 и т.д., а параметры %0 и %1 остаются без изменений.
Команда, обратная SHIFT (обратный сдвиг), отсутствует. После выполнения SHIFT уже нельзя восстановить параметр (%0), который был первым перед сдвигом. Если в командной строке задано больше десяти параметров, то команду SHIFT можно использовать несколько раз.
Задания на выполнение работы:
1. Создать и сохранить в совей папке учебные файлы primer 1. bat , primer 2. bat , primer 3. bat.
2. Самостоятельно создать пакетные файлы, выполняющие следующие задачи:
a. Создать в C :\ Temp пакетный файл spr . bat, который при запуске его с параметром (параметр – имя соответствующей команды) создает текстовый файл, который должен содержать справку по данной команде команде (например, при запуске spr if – в C :\ Temp должен быть создан файл if . txt, содержащий описание этой команды). Создать с помощью пакетного файла spr.bat текстовые файлы if . txt , goto . txt , for . txt , rem . txt , echo . txt.
b. Создать пакетный файл new _ name . bat, который проверяет наличие соответствующего текстового файла и, если он найден в C :\ Temp, копирует его в папку студента, изменяя при этом расширение на . doc . Запустить пакетный файл new _ name . bat 5 раз, задавая при этом в качестве параметра имя соответствующего файла с расширением *. txt.
3. Написать пакетный файл, выполняющий следующие задачи.
1) Сделать текущим диск D:.
2) Создать каталог MYDIR в каталоге C :\ TEMP.
3) Изменить текущий каталог на каталог TEMP диска С:.
4) Просмотреть содержимое текущего каталога:
а) вывести список файлов и подкаталогов с паузой после каждой страницы (экрана);
б) вывести этот же список в несколько колонок;
в) вывести список файлов корневого каталога диска С:, имеющих атрибут “системный”
5) Создать в каталоге MYDIR следующую структуру каталогов:
6) С помощью команды copy создать в каталоге MYDIR текстовый файл example.txt из двух строк (любых). Для обозначения файла-источника при вводе с клавиатуры используется имя con, разделитель строк – нажатие [Enter], конец ввода – [F6]
7) Скопировать в каталог CAT1 файл example.txt.
8) Переименовать каталог CAT1 в TEXT.
9) Вывести на экран содержимое файла example.txt.
10) Скопировать в каталог CAT3 все файлы с расширением ini из каталога С:\WINNT.
11) Переместить все файлы из каталога CAT3 в каталог CAT4 с изменением расширения файлов на doc.
12) Удалить каталог CAT3.
13) Вывести текущую дату. (самостоятельно)
14) Вывести текущее время.(самостоятельно)
15) Добавить в приглашение DOS текущие дату и время.(самостоятельно)
16) Узнать версию операционной системы.
17) Удалить каталог MYDIR.
4. Сформировать отчет по проделанной работе
Дата: 2018-12-21, просмотров: 299.