Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Обработать построчно файл, и получить значения между двух знаков - (http://forum.oszone.net/showthread.php?t=314067)

woodsman 20-04-2016 17:18 2628055

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

greg zakharov 20-04-2016 18:28 2628072

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

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 2628073

Код:

@<"FolderStr.txt">"new.txt" (for /f "tokens=2 delims=:" %%i in ('more') do @for /f "tokens=2 delims=-" %%j in ("%%~ni") do @echo.%%j)


Время: 07:02.

Время: 07:02.
© OSzone.net 2001-