Войти

Показать полную графическую версию : Обработать построчно файл, и получить значения между двух знаков -


woodsman
20-04-2016, 17:18
Доброго дня!
Подскажите.
есть текстовый файл FolderStr.txt в котором структура папок/файлов
вида
F:\Папка\2015_02_16_17_21-senyor_pomidor-Приветственное_сообщение-всем_Пользователям.txt
мне надо перебрать все строки и выдернуть с имени только то что между двумя первыми знаками -, в имени может быть и третий и четвертный знак -
т.е. в данном случае senyor_pomidor
сложить все это в один текстовый файл

greg zakharov
20-04-2016, 18:28
Допустим, файл выглядит как:
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
20-04-2016, 18:29
@<"FolderStr.txt">"new.txt" (for /f "tokens=2 delims=:" %%i in ('more') do @for /f "tokens=2 delims=-" %%j in ("%%~ni") do @echo.%%j)




© OSzone.net 2001-2012