Anton Nikolaev
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте, уважаемые! Долго гуглил, так и не нашел решения моей небольшой проблемы. В каталоге периодически появляются файлы со сложным именем. Часть имени неизменна, часть содержит дату, коды получателей и т.д. Для простоты XXXXYYYYZZZZ. Где XXXX - постоянно меняются, YYYY - код получателя, ZZZZ - константа. Мне нужно обработать их кучками, отобрав в каждую одинаковые YYYY Сейчас, зная заранее весь список получателей, я могу повторить обработку несколько раз, для каждого из них отдельно. Но хочется сделать красиво! Перебрать файлы, извлечь из их имени код получателя, и сделать обработку по этому получателю. Потом повторить. И так, пока файлы не кончатся. Кроме того, этот скрипт пригодится не только мне, а какие там у соседей коды получателей - мне знать совершенно не нужно! В общем, для примера задача выглядит так: Надо извлечь в переменную часть имени файла начиная с 5 символа, и по 9 символ. Если есть переменная, обозначаемая как %VAR%, то это было бы легко: %VAR~5,4% Но в цикле FOR у нас переменная вида %%f, из неё как извлечь часть строки? Попытки присвоить другой переменной значение локальной переменной, а потом извлечь уже из нее нужную часть имени - провалились. Вот тестовый батник: for %%a in (*.log) do ( echo src=%%a set var=%%a echo src_cop=%var% set var=%var:~0,4% echo src_res=%var% ) выдаёт: src=bssuser.log src_cop= src_res= Что я не так делаю? |