Составители:
13
тавляет встроенные средства поддержки подобных операций в команде 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. На-
пример, следующая команда:
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%.
Зачастую информация, подлежащая хранению и обработке, должна быть
представлена в числовом виде. Например, если потребуется подсчитать суммар-
13
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »
