![]() |
Копирование первой строки из файла
Вложений: 1
Помогите пожалуйста! Есть файл broad.int из него нужно скопировать в файл 1. txt первую строку. Но начать копирование только после 14ого символа в первой строке... То есть в конечном файле должно быть только "Градусы - Кто ты"
Код:
17051110425000Градусы - Кто ты |
MultiMax,
Код:
@Echo Off |
MultiMax,
Код:
@echo off |
Спасибо! Вот только строчка длинная.. ограничить бы как-нибудь ее.. если вправо пролистать, то там пусть к файлу еще... Этот файлик нужен для вывода на радиостанции названия песни :) Вот что пишет по поводу файла разработчик:
"Во время проигрывания плей-листа в папке, где находится плей-лист, создается файл broad.int. В этом файле находится информация о проигрываемом объекте и 9-ти следующих за ним объектах. Формат одной строчки файла: время выхода[12]битовая маска атрибутов[2]текстовая информация[255]полный путь к файлу[255]длительность звучания[8]резервное поле2[247]0x0a 0x0a - символ конца строки 'x' - символ конца файла" 1) Можно ли как-нибудь ограничить количество символов, чтобы копировалось только название песни? В скрипте El Sanchez, удаляются кстати все символы лишние... но на второй и остальных строчках, в первой - нет :) 2) Возможно это сложно, но был бы оочень и премного благодарен и признателен, если кто-нибудь помог с тем, чтобы скрипт копировал название песни, только если она находится в каталоге E:\Music, если нет, то не обрабатывать, выдавать пустой ткст файл например. |
Цитата:
Цитата:
Цитата:
Код:
Hurts - Wonderful Life Цитата:
Код:
For /F "Tokens=*" %%A In ('type broad.int^|FindStr /I "E:\Music"') Do Call :_Func "%%A" |
El Sanchez, да, действительно. Спасибо! Скрипт запускается раз в минуту и... в файле 1.txt накапливается информация... можно сделать так чтобы при "обновлении" все подчищалось, как в скрипте Foreigner? И если можно чтобы выводился не целый список, а только первая песенка, остальное пока что не нужно. Но спасибо вам огромное!!!
|
MultiMax,
Код:
@Echo Off |
El Sanchez, спасибо! Дописал куда будет сохранять только
@Echo Off Set Cnt=0 For /F "Tokens=*" %%A In ('type broad.int^|FindStr /I "E:\Music"') Do Call :_Func "%%A" Exit /B 0 :_Func Set "Str=%~1" If "%Str:~14%"=="" Exit /B If %Cnt% EQU 1 Exit /B Set "Str=%Str:~14%" Set "Str=%Str: =$%" For /F "Tokens=1 Delims=$" %%A In ("%Str%") Do Echo.%%A>>1.txt Set /A Cnt+=1 Файлик 1.txt не подчищается с каждым запуском скрипта... Накапливается по строчке все больше и больше |
Сделал вот так...
@Echo Off del F:\Broad\1.txt end Set Cnt=0 For /F "Tokens=*" %%A In ('type broad.int^|FindStr /I "E:\Music"') Do Call :_Func "%%A" Exit /B 0 :_Func Set "Str=%~1" If "%Str:~14%"=="" Exit /B If %Cnt% EQU 1 Exit /B Set "Str=%Str:~14%" Set "Str=%Str: =$%" For /F "Tokens=1 Delims=$" %%A In ("%Str%") Do Echo.%%A>>1.txt Set /A Cnt+=1 Но если песня из каталога НЕ music, скрипт показывает файл следующий по списку который из папки... а в эфире-то он не играет пока что :) Можно ли сделать так, чтобы в случае, если песня не из каталога music, выдавался пустой файл? И самая последняя просьба: помогите пожалуйста сделать так, чтобы весь скрипт выполнялся по кругу каждые 20 секунд, не закрывая своего окошка (Windows Scheduler каждый раз запуская скрипт открывает окно, и оно постоянно всплывает) |
Проблема с запуском каждые 20 сек отпала! Помогите пожалуйста сделать, чтобы в случае, если песня не из каталога music, выдавался пустой файл
|
MultiMax,
Попробуйте такой вариант Код:
@echo off |
Foreigner, супер! Изящное решение, ничего не скажешь.
MultiMax, добил свой вариант. Если ping не нужен удалить/закомментировать выделенное: Код:
@Echo Off |
Foreigner, El Sanchez СПАСИБО ВАМ ОГРОМНОЕ!!! Даже не знаю, как благодарить :) Все работает, версия с пингом вообще шикарна, все гениальное - просто, ведь недаром говорят) Извините за то что возможно отнял время! Еще раз СПА-СИ-БО!
|
снова здравствуйте! есть проблема с этим скриптом - при наличии в названии песни символа "&", скрипт не выполняется. Как поправить?
|
Вложений: 1
Помогите советом пожалуйста! Есть специальный плеер, который выплевывает файл с названием текущего трека + последующих в плейлисте. Есть скрипт bat, который парсит этот файл и выплевывает текстовый с одной строчкой - Имя Артиста - Название песни. При наличии в названии песни значка &, скрипт не выполняется. Как это обойти?
Вот сам скрипт: @echo off setlocal 1>nul chcp 1251 0<broad.int set /p "string=" echo %string% | 1>nul 2>&1 findstr "B" || cd.>onair.txt && goto:eof call:set %string:~14,255% CHCP 65001|1>onair.txt echo %song%&utf-8 goto:eof :set set "song=%*" Файл, который надо парсить, приложил |
есть кто?
|
Вложений: 1
работает, только после названия песни выплевывает в текстовый файл путь и имя файла. обрубить бы это как-нибудь и оставить только Артист - Название песни... прикрепил...
|
Помогите пожалуйста с кодом. Есть логика, а навыков нет ;) Нужно из файлика Nowplay (в файле только одна строка - Исполнитель и название песни) вытаскивать в другой файл первые 8 символов плюс "2", делать перенос и повторять операцию, но уже со сдвигом на символ и так до конца строки. Результаты работы в новый файл. Это для работы RDS-кодера на радио.
То есть: Доктор Дре - Она одна такая Доктор Д 2 октор Др 2 ктор Дре 2 тор Дре 2 ор Дре - 2 р Дре - 2 Дре - О 2 Дре - Он 2 ре - Она 2 е - Она 2 - Она О 2 - Она Од 2 .... и.т.д. Код однократного действия я нашел... а дальше швах! Код:
@echo off В идеале еще сделать в том же файле транслитерацию... но это уже будет просто опупенно Код:
for %%a in ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" |
Цитата:
Код:
echo off Код:
@echo off Не смотря на мусорность конструкция работает. Все бы хорошо, но возникла проблема - если количества символов не хватает на создание 14 текстовиков - слить их не получается. Можно как то решить проблему со слиянием, если число файлов для него произвольное, но располагаться все должно столбиком? |
На WSH:
Код:
Option Explicit |
Здравствуйте! Уже 4 года гоняем скрипт! Все отлично, но вылез один баг. При звучании в эфире песни или программы без тега, скрипт выдает "~14", вместо пустоты :) Скрин прилагается, а также 2 файла, которые скрипт парсит. первый файл скопирован во время звучания в эфире размеченной песни, второй - неразмеченной. Возможно это можно как-то поправить?
![]() Код:
@echo off Есть эфирный компьютер с программой-плеером музыки. Программа выплевывает файл broad.int (копия файла внизу по ссылке), с описанием текущей песни, пути к ней, времени старта + последующие несколько песен в эфире. Скрипт стоит на втором компьютере, по сети копирует этот файл broad.int и копирует в папку со скриптом. NNCRON отслеживает изменение файла broad. int на удаленном компе и запускает батник, который копирует broad.int себе в папку и обрабатывает его, выплевывая текстовый файл с названием песни в эфире :) ссылка на онлайн вещание, где запущен данный скрипт: http://86.57.151.4:8009/listen.pls https://drive.google.com/file/d/0B2-...paV0NNYW8/view Тут скрипт и 2 примера файла. |
Проверьте переменную %first_string%:
Код:
... |
сделал, тестируем..)
|
Видимо никого не смущают куцые возможности батников в отношении кодировок текстовых файлов... Задача сводилась по сути к:
Код:
@echo off Код:
-join ($$=(gc broad.int)[0])[14..$$.length] |
поясните пожалуйста что вы имеете ввиду? скрипт, который вы кинули меняет кодировку?
|
Цитата:
|
Цитата:
|
Добрый день! использую один из скриптов, выложенных в этой теме! Все работает как часы :)
Как заставить его выводить необходимый текст, при появлении файлов из других папок??? Если путь равен X:\Pogoda (тут расположены заставки погоды, фон для ведущего погоды) -- вывести слово "Прогноз погоды" Если путь равен X:\News (тут расположены заставки новостей, фон для ведущего погоды) -- вывести слово "Новости" Если путь равен X:\Reklama (тут расположены рекламные ролики) -- вывести слово "Реклама" поведение скрипта: файл broad.int, который выплевывает радио плеер, копируется в локальную папку, обрабатывается скриптом. Скрипт смотрит на путь к песне в файле broad.int , если в он равен X:\Music_2015 --- выводим название песни и исполнителя, обрезая ненужные символы до и после. Если путь не равен X:\Music_2015, выводим пустоту в файл (команда nul). Задача следующая! Добавить возможность прописать условие! Если путь равен X:\Music_2015 -- все остается как прежде, Артист - Название песни. Если путь ИНОЙ или файл без названия (~14), выводить nul -- т.е. сохранить текущее поведение Вот тело скрипта: Код:
@echo off |
Время: 17:53. |
Время: 17:53.
© OSzone.net 2001-