Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Rem Выведет строку FileName echo FileNameСодержание книги Поиск на нашем сайте
rem Выведет значение переменной FileName - tmp.dat echo %filename%
Чтобы удалить переменную среды, команду set необходимо вызвать в виде: set имя_переменной=
Например:
rem удаляем переменную среды FileName set FileName=
Если имя переменной не найдено в текущей среде, то при возврате команда set имя_переменной установит значение специальной переменной среды errorlevel равным1.Это свойство можно использовать в командных файлах дляопределения наличия определенной переменной. Из последнего примера видно, что имена переменных для Cmd.exe регистронезависимы.
Значение некоторых полезных на практике переменных среды по команде set не выдаются. В основном, это переменные, принимаемые значения которых динами-чески изменяются, их перечень приведен в таблице 5:
В связи с тем, что переменные среды хранят преимущественно строковую информацию, для работы с подобными переменными характерны специфичные операции поиска, замены, удаления подстрок. Командный интерпретатор предос-
тавляет встроенные средства поддержки подобных операций в команде set. На-пример, следующая команда:
set переменная1=%переменная2:строка1=строка2%
присвоит переменной1 измененное значение переменной2. Команда найдет в пе-ременной2 все вхождения строки1,заменит их на содержимое строки2 и преоб-разованное таким образом значение переменной2 будет присвоено переменной1. Рассмотрим пример
@echo off
set s1=one two three one two three set s2=%s1:one=four%
set s3=%s1:two=% echo %s2%
echo %s3%
В результате получим на экране
Four two three four two three one three one three
Если значение строки должно формироваться как конкатенация (объеди-нение) двух и более других строк, то их достаточно записать последовательно друг за другом:
@echo off set s1=one set s2=two
set s3=%s1% %s2% echo %s3%
В результате получим на экране
One two
Еще одна интересная возможность – копирование подстроки. Для этого команду set необходимо вызывать в виде:
set переменная1=%переменная2: ~m,n%
Эта команда возьмет значение второй указанной переменной (переменная2), вырежет из него подстроку длиной n символов начиная с (m+1)-гo и запишет ре-зультат в первую переменную (переменная1). @echo off
set d=12.12.2012 set month=%d:~3,2% set year=%d:~6,4% set hour=%time:~0,2% echo %month%
echo %year% echo %hour%
Значением переменной month будет значение месяца, а year - года из даты, хранящейся в переменной d в формате dd.mm.yyyy. Значение переменной hour выделяем из переменной окружения %time%.
Зачастую информация, подлежащая хранению и обработке, должна быть представлена в числовом виде. Например, если потребуется подсчитать суммар-
ный размер, занимаемый файлами в папке, или для подсчета количества запущен-ных процессов. В этом случае команду set необходимо использовать с ключом /A.
set /А переменная=выражение
Использование ключа /A означает, что стоящая справа от знака равенства строка является числовым выражением, значение которого необходимо вычис-лить. Численные значения для команды set — это десятичные числа, кроме чисел с префиксами 0x для шестнадцатеричных чисел и 0 для восьмеричных чисел. Та-ким образом число 20 можно представить как 0x14 и 024.
Например, если задать команду
SET /А Sum=5+6
то значение переменной Sum будет равно одиннадцати.
Все операторы, поддерживаемые командой set, приведены в таблице 6. Строки таблицы отсортированы в порядке убывания приоритета.
Таблица 6. Операторы, поддерживаемые при арифметических вычислени-ях командой set.
В связи с тем, что такие знаки как % >> << & | функционально ”перегру-жены” (используются для обозначения нескольких операций в разных контекстах использования), то при их использовании необходимо заключить строку выраже-ния в кавычки.
Если в выражении встречается строка, не являющаяся числовой лексемой, то оно будет интерпретирована как имя переменной среды, команда set преобра-зует ее значение в числовую форму и использует в выражении для формирования результата. Если в выражении используется переменная с именем, не определен-ным в текущем сеансе командной строки или это значение не может быть преоб-разовано в числовую форму, то вместо нее подставляется нулевое значение. Это позволяет использовать переменные среды в арифметических выражениях без об-рамления их имен знаками %. Следующий пример иллюстрирует выполнения арифметических операций с переменными среды.
@echo off set a=5 set b=25
set /a c=b/a+tmpVar set c
В результате выполнения новой переменной среды c будет присвоено зна-чение 5, и на экран будет выведено ее значение (а также всех переменных среды,
начинающихся с символа с). Переменная tmpVar не была определена, поэтому ее значение при вычислении значения выражения будет принято за 0.
Значение переменной можно задать и как результат работы команды. Так можно получить серийный номер тома текущего диска:
@echo off
vol | find “:” >out.tmp set /p var= <out.tmp set serial=%var:~22,9% del out.tmp
echo %serial%
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-16; просмотров: 345; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.1.23 (0.006 с.) |