Elroir
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору regular Цитата: В частности !fname:~5,-8! Как эта строка выбирает удаляет первые 5 и последние 8 символов? Что значит символ "!" ? | Имеем переменную fname, в которую подставляем значение переменной %%I в каждом цикле for-а. В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл. При работе с переменными окружения, чаще всего, мы используем их как строчки. Часто нам нужно выделить из строчки какую-нибудь подстрочку. Для этого можно использовать конструкцию %var:~n% или %var:~n,m%. В первом случае мы получаем подстрочку начиная с n-ого символа и до конца строки, во втором подстрочку начинающуюся с n-ого символа и заканчивающегося символом с номером m. Нумерация ведется с 0. Если число со знаком минус, то отсчет ведется с конца строки. Таким образом !fname:~5,-8! отсчитывает 5 символов с начала строки, которая находится в переменной fname, отсчитывает 8 символов с конца и мы получаем подстрочку fname, ограниченную этими условиями. | Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:56 16-01-2007 | Исправлено: Elroir, 19:31 17-01-2007 |
|