Доброго дня!
Подскажите.
есть текстовый файл FolderStr.txt в котором структура папок/файлов
вида
F:\Папка\2015_02_16_17_21-senyor_pomidor-Приветственное_сообщение-всем_Пользователям.txt
мне надо перебрать все строки и выдернуть с имени только то что между двумя первыми знаками -, в имени может быть и третий и четвертный знак -
т.е. в данном случае senyor_pomidor
сложить все это в один текстовый файл
CMD/BAT - Обработать построчно файл, и получить значения между двух знаков -
-
woodsman
Re: CMD/BAT - Обработать построчно файл, и получить значения между двух знаков -
Допустим, файл выглядит как:
Код:
Тогда можно извлечь подстроку по токену:
Код:
К слову, если в наличии имеется gawk:
Код:
На PS >= 4 версии:
Код:
Код:
Код: Выделить всё
F:\Папка\2015_02_16_17_21-senyor_pomidor-Приветственное_сообщение-всем_Пользователям.txt
E:\Папка\2016_02_16_19_33-siski_rulyat_mirom-Приветственное_сообщение-vip_Пользователям.txt
...Тогда можно извлечь подстроку по токену:
Код:
Код: Выделить всё
@echo off
setlocal&chcp 1251>nul
for /f %%i in (spisok.txt) do (
for /f "tokens=2 delims=-" %%j in ("%%i") do (
echo:%%j>>puk.txt
)
)
endlocal&chcp 866>nul
exit /bК слову, если в наличии имеется gawk:
Код:
Код: Выделить всё
gawk -F "-" '{print $2}' spisok.txt>puk.txtНа PS >= 4 версии:
Код:
Код: Выделить всё
(gc .\spisok.txt).ForEach{($_ -split '-')[1]}|Out-File puk.txt -enc default-
Georgio
Re: CMD/BAT - Обработать построчно файл, и получить значения между двух знаков -
Код:
Код: Выделить всё
@"new.txt" (for /f "tokens=2 delims=:" %%i in ('more') do @for /f "tokens=2 delims=-" %%j in ("%%~ni") do @echo.%%j)