С переменными среды в командных файлах можно производить некоторые манипуляции. Во-первых, над ними можно производить операцию конкатенации (склеивания). Для этого нужно в команде SET просто написать рядом значения соединяемых переменных. Например,
SET A=РазSET B=ДваSET C=%A%%B%После выполнения в файле этих команд значением переменной C будет являться строка 'РазДва'. Не следует для конкатенации использовать знак +, так как он будет воспринят просто в качестве символа. Например, после запуска файла следующего содержания
SET A=РазSET B=ДваSET C=A+BECHO Переменная C=%C%SET D=%A%+%B%ECHO Переменная D=%D%на экран выведутся две строки:
Переменная C=A+BПеременная D=Раз+ДваВо-вторых, из переменной среды можно выделять подстроки с помощью конструкции %имя_переменной:~n1,n2%, где число n1определяет смещение (количество пропускаемых символов) от начала (если n1 положительно) или от конца (если n1отрицательно) соответствующей переменной среды, а число n2 – количество выделяемых символов (если n2 положительно) или количество последних символов в переменной, которые не войдут в выделяемую подстроку (если n2 отрицательно). Если указан только один отрицательный параметр -n, то будут извлечены последние n символов. Например, если в переменной%DATE% хранится строка "21.09.2007" (символьное представление текущая дата при определенных региональных настройках), то после выполнения следующих команд
|
|
новые переменные будут иметь такие значения: %dd1%=21, %dd2%=21, %mm%=09, %yyyy%=2007.
В-третьих, можно выполнять процедуру замены подстрок с помощью конструкции %имя_переменной:s1=s2% (в результате будет возвращена строка, в которой каждое вхождение подстроки s1 в соответствующей переменной среды заменено на s2). Например, после выполнения команд
SET a=123456SET b=%a:23=99%в переменной b будет храниться строка "199456". Если параметр s2 не указан, то подстрока s1 будет удалена из выводимой строки, т.е. после выполнения команды
SET a=123456SET b=%a:23=%в переменной b будет храниться строка "1456".