Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2023, 17:14   #1
lovatorx
Новичок
Джуниор
 
Регистрация: 01.03.2023
Сообщений: 3
По умолчанию cmd скрипт для добавления треков в плейлист

Добрый день помогите со скриптом cmd.
у меня есть готовый аудио плейлист и мне нужно добавить в него несколько треков.
Грубо говоря у меня есть 3 трека которые нужно по очереди вставить через каждых 5 текущих треков до конца моего плейлиста вот пример который мне нужно получить.
это треки которые мне нужно добавить в плейлист New_Audio01.mp3, New_Audio02.mp3, New_Audio03.mp3
желательно в переменной добавлять новые треки которые нужно вставить в плейлист
Код:
#EXTM3U
#EXTINF:0,Track1.mp3
Track1.mp3

#EXTINF:0,Track2.mp3
Track2.mp3

#EXTINF:0,Track3.mp3
Track3.mp3

#EXTINF:0,Track4.mp3
Track4.mp3

#EXTINF:0,Track5.mp3
Track5.mp3

#EXTINF:0,New_Audio01.mp3
New_Audio01.mp3

#EXTINF:0,Track6.mp3
Track6.mp3

#EXTINF:0,Track7.mp3
Track7.mp3

#EXTINF:0,Track8.mp3
Track8.mp3

#EXTINF:0,Track9.mp3
Track9.mp3

#EXTINF:0,Track10.mp3
Track10.mp3

#EXTINF:0,New_Audio02.mp3
New_Audio02.mp3

#EXTINF:0,Track11.mp3
Track11.mp3

#EXTINF:0,Track12.mp3
Track12.mp3

#EXTINF:0,Track13.mp3
Track13.mp3

#EXTINF:0,Track14.mp3
Track14.mp3

#EXTINF:0,Track15.mp3
Track15.mp3

#EXTINF:0,New_Audio03.mp3
New_Audio03.mp3

#EXTINF:0,Track16.mp3
Track16.mp3

#EXTINF:0,Track17.mp3
Track17.mp3

#EXTINF:0,Track18.mp3
Track18.mp3

#EXTINF:0,Track19.mp3
Track9.mp3

#EXTINF:0,Track20.mp3
Track20.mp3

#EXTINF:0,New_Audio01.mp3
New_Audio01.mp3

#EXTINF:0,Track21.mp3
Track21.mp3

#EXTINF:0,Track22.mp3
Track22mp3

#EXTINF:0,Track23.mp3
Track23.mp3

#EXTINF:0,Track24.mp3
Track24.mp3

#EXTINF:0,Track25.mp3
Track25.mp3

#EXTINF:0,New_Audio02.mp3
New_Audio02.mp3

#EXTINF:0,Track26.mp3
Track26.mp3

#EXTINF:0,Track27.mp3
Track27mp3

#EXTINF:0,Track28.mp3
Track28.mp3

#EXTINF:0,Track29.mp3
Track29.mp3
lovatorx вне форума Ответить с цитированием
Старый 01.03.2023, 18:44   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,716
По умолчанию

А обычный Блокнот вместо скрипта - не подойдёт ?
digitalis вне форума Ответить с цитированием
Старый 01.03.2023, 18:56   #3
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
echo #EXTINF:0,Track6.mp3 >> playlist.m3u
echo Track6.mp3 >> playlist.m3u
echo.>> playlist.m3u
macomics вне форума Ответить с цитированием
Старый 01.03.2023, 19:22   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,716
По умолчанию

Так ему же надо вставить в определённое место плейлиста?
digitalis вне форума Ответить с цитированием
Старый 01.03.2023, 20:03   #5
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
for /F ...
macomics вне форума Ответить с цитированием
Старый 02.03.2023, 15:34   #6
lovatorx
Новичок
Джуниор
 
Регистрация: 01.03.2023
Сообщений: 3
По умолчанию

Вот попытался сделать скрипт, он работает но только на добавление 3-х треков, а мне нужно чтобы они добавлялись поочередно до конца плейлиста. У меня в плейлисте может находится до 200

Код:
@echo off
setlocal enabledelayedexpansion

set "playlist=playlist.m3u"
set "new_song1=New_Audio01.mp3"
set "new_song2=New_Audio02.mp3"
set "new_song3=New_Audio03.mp3"
set "new_playlist=new_playlist.m3u"

(for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%playlist%"') do (
  set "line=%%b"
  if %%a equ 16 (
    echo.
    echo.#EXTINF:0,!new_song1!
    echo.!new_song1!
    echo.
  ) else if %%a equ 31 (
    echo.
    echo.#EXTINF:0,!new_song2!
    echo.!new_song2!
    echo.
  ) else if %%a equ 46 (
    echo.
    echo.#EXTINF:0,!new_song3!
    echo.!new_song3!
    echo.
  ) else (
    echo(!line!
  )
)) > "%new_playlist%"

Последний раз редактировалось lovatorx; 02.03.2023 в 15:41.
lovatorx вне форума Ответить с цитированием
Старый 02.03.2023, 19:44   #7
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

1) Используйте >> для добавления в файл, а не его перезаписи
2) Через команду call можно перейти на метку и передать параметры
Код:
@ech off
call :label1 321 > sample.txt
exit /b 0

:label1
call label2 123 %1 %~nx0
call label2 111 %1 %~nx0
goto :EOF

:label2
echo %~1
echo %~2
echo %~3
echo.
выдаст
Код:
123
321
test.bat

111
321
test.bat
3) Исходя из вышесказанного, вам достаточно написать скрипт, который будет добавлять один трек. Но параметры которого будут передаваться в параметрах скрипта через команду call. А вот добавляться треки будут к существующему списку в конец через >>
4) Новые файлы можно искать используя в `for /F` команду `dir /b` или `type filename.txt`

Последний раз редактировалось macomics; 02.03.2023 в 21:27.
macomics вне форума Ответить с цитированием
Старый 02.03.2023, 22:36   #8
lovatorx
Новичок
Джуниор
 
Регистрация: 01.03.2023
Сообщений: 3
По умолчанию

Получилось
Код:
@echo off
setlocal enabledelayedexpansion

set "playlist=playlist.m3u"
set "new_song1=song1.mp3"
set "new_song2=song2.mp3"
set "new_song3=song3.mp3"
set "new_playlist=new_playlist.m3u"

set /a count=1
set "new_song=!new_song1!"
(for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%playlist%"') do (
  set "line=%%b"
  echo(!line!
  if !count! equ 15 (
    echo.
    echo.#EXTINF:0,!new_song!
    echo.!new_song!
    set /a count=0
    if "!new_song!"=="!new_song1!" (
      set "new_song=!new_song2!"
    ) else if "!new_song!"=="!new_song2!" (
      set "new_song=!new_song3!"
    ) else (
      set "new_song=!new_song1!"
    )
  )
  set /a count+=1
)) > "%new_playlist%"

помогите с переменной, чтобы изменить только одну строку (пример set
Код:
"list_song=song1.mp3*song2.mp3*song3.mp3*song4.mp3*song5.mp3"
) при добавлении или удаления трека

к примеру если я захочу добавить song4.mp3

то нужно еще добавить и это
Код:
set "new_song4=song4.mp3"
Код:
set "new_song=!new_song4!"
) else if "!new_song!"=="!new_song4!" (
lovatorx вне форума Ответить с цитированием
Старый 03.03.2023, 01:00   #9
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
for /F "usebackq tokens=1* delims=8" %%s in (`echo !list_song!`) do call :add_song %%s
Код:
@echo off
set "list_song=song1.mp3*song2.mp3*song3.mp3*song4.mp3*song5.mp3"
call :parse_list :add_song "!list_song!" ""
exit /b 0

:parse_list
;; Не помню в каких кавычках строка, поэтому использовал команду echo %~2
if not "#%~2"=="#" for /F "usebackq tokens=1,* delims=*" %%s in (`echo %~2`) do call %~1 "%%t" "%%s"
call %~1 %3
goto :EOF

:add_song
echo Add song: %~1
;; ...

Последний раз редактировалось macomics; 03.03.2023 в 01:10.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт добавления ссылки при копировании deduschka JavaScript, Ajax 1 08.05.2017 17:14
Как в Вконтакте вызвать скрипт добавления в друзья worldbest C# (си шарп) 0 13.08.2013 19:32
Прослушивание треков с Vk or Mail.ru stalker1995s Общие вопросы Delphi 0 17.02.2013 17:25
Сравнение звуковых треков Stasja Фриланс 0 04.12.2010 16:05
Восстановление Треков частиц(фитирование) winny Общие вопросы C/C++ 0 01.10.2008 13:55