CMD/BAT - Обработать построчно файл, и получить значения между двух знаков -

Ответить
Аватара пользователя
woodsman

CMD/BAT - Обработать построчно файл, и получить значения между двух знаков -

Сообщение woodsman »

Доброго дня!

Подскажите.

есть текстовый файл FolderStr.txt в котором структура папок/файлов

вида

F:\Папка\2015_02_16_17_21-senyor_pomidor-Приветственное_сообщение-всем_Пользователям.txt

мне надо перебрать все строки и выдернуть с имени только то что между двумя первыми знаками -, в имени может быть и третий и четвертный знак -

т.е. в данном случае senyor_pomidor

сложить все это в один текстовый файл
Аватара пользователя
woodsman

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

Сообщение woodsman »

Допустим, файл выглядит как:



Код:

Код: Выделить всё

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 - Обработать построчно файл, и получить значения между двух знаков -

Сообщение Georgio »

Код:

Код: Выделить всё

@"new.txt" (for /f "tokens=2 delims=:" %%i in ('more') do @for /f "tokens=2 delims=-" %%j in ("%%~ni") do @echo.%%j)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»