HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > РАЗРАБОТКА > Для Администратора > Windows
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.11.2014, 18:19
Denixxx
Участник форума
Регистрация: 07.02.2014
Сообщений: 244
Провел на форуме:
46792

Репутация: 0
По умолчанию

Часто бывала ситуация, когда созданную в плейлисте на компе музыку хотелось бы проиграть на других устройствах с флешки.
Winamp создаёт плейлист в формате m3u, и внутри его — ссылки на файлы mp3
Однако возникает проблема получить список файлов и скопировать это на флешку.
После того, как жена в 5-й раз попросила обновить на флешке музыку, я задумался об автоматизации этого процесса.
И написал bat-файл для этого.
Вот его код, авось кому ещё пригодится:

Код:


Код:
@echo off
Setlocal EnableExtensions
set /p filein=" Введите имя плейлиста: "
set /p disk=" Введите диск куда копировать файлы: "
chcp 1251>nul
set LanguageFlag=true
mkdir "%disk%\%DATE%"
for /f "usebackq delims= eol=#" %%a in ("%filein%") do (
if defined LanguageFlag (chcp 866>nul& set LanguageFlag=)
rem echo %%a
rem echo %disk%\%DATE%\%%~na.mp3
copy /y "%%a" "%disk%\%DATE%\%%~na.mp3"
)
pause
Файл ложится в папку с плейлистом.
При запуске запрашивает:
1. Имя плейлиста — например введите sound.m3u
2. Диск куда скопировать файлы из плейлиста, например введите K:

Как работает:
Создает папку с датой на введённом диске типа 13.11.2014 и копирует туда файлы, найденные в плейлисте.

В bat-файлах есть проблемы с их интерпретацией русского текста, поэтому прилагаю архив этого маленького файла. Поскольку тупое копирование текста во вновь созданный файл не поможет, только вдумчивое

Что не получилось сделать, а заодно и возможные проблемы:
1. Не разобрался как писать имя файла с расширением, потому написал в копии — имя файла + жёстко расширение mp3. Буду рад если кто подправит как правильно — копировать первоначальное имя файла с его расширением.
2. Наличие файлов на диске не проверяется. Ни в источнике, ни в назначении.
3. Файлы желательно иметь возможность переименовать в виде 01-исходный_файл.mp3 и далее по порядку. Чтобы на устройствах, которые не поддерживают плейлисты, файлы шли жестко по порядку как в плейлисте. Пока не знаю как сделать.

Задача вроде бы изначально казалась простой, однако при решении сказалась вся убогость bat-файлов для таких целей: зоопарк кодировок внутри винды вызывал кракозяблики то в меню скрипта, то в названиях файлов на кириллице.
Если есть решение получше — у кого есть, просьба поделитесь.
 
Ответить с цитированием

  #2  
Старый 13.11.2014, 20:58
efs
Новичок
Регистрация: 10.04.2010
Сообщений: 1
Провел на форуме:
4178

Репутация: 0
По умолчанию

ИМХО лучше copy заменить на xcopy
 
Ответить с цитированием

  #3  
Старый 13.11.2014, 21:02
SynergyIT
Познающий
Регистрация: 20.07.2013
Сообщений: 82
Провел на форуме:
32321

Репутация: 0
По умолчанию

У меня решение простое AIMP. В него встроена функция копирования файлов по списку плейлиста.
 
Ответить с цитированием

  #4  
Старый 14.11.2014, 00:52
Denixxx
Участник форума
Регистрация: 07.02.2014
Сообщений: 244
Провел на форуме:
46792

Репутация: 0
По умолчанию

Цитата:

efs написал(а):

ИМХО лучше copy заменить на xcopy

Чем лучше? Я не сторонник стрелять из пушки по воробьям. Я не копирую каталоги с подкаталогами, а файлы в цикле один за другим.
Если знаете что-то, напишите код.
Цитата:

SynergyIT написал(а):

У меня решение простое AIMP. В него встроена функция копирования файлов по списку плейлиста.

Спасибо за инфу, попробуем.
 
Ответить с цитированием

  #5  
Старый 14.11.2014, 16:42
efs
Новичок
Регистрация: 10.04.2010
Сообщений: 1
Провел на форуме:
4178

Репутация: 0
По умолчанию

Цитата:

Denixxx написал(а):

Чем лучше? Я не сторонник стрелять из пушки по воробьям. Я не копирую каталоги с подкаталогами, а файлы в цикле один за другим.
Если знаете что-то, напишите код.

Спасибо за инфу, попробуем.

хотя бы ключом позволяющим игнорировать ошибки, может копировать файлы с атрибутами "скрытый", "системный" (кто знает что творится на накопителе у юзверя?). может копировать с использованием коротких имен, что актуально при копировании на носитель с файловой системой FAT и т.д.
 
Ответить с цитированием

  #6  
Старый 14.11.2014, 20:05
Denixxx
Участник форума
Регистрация: 07.02.2014
Сообщений: 244
Провел на форуме:
46792

Репутация: 0
По умолчанию

Цитата:

efs написал(а):

хотя бы ключом позволяющим игнорировать ошибки, может копировать файлы с атрибутами "скрытый", "системный" (кто знает что творится на накопителе у юзверя?). может копировать с использованием коротких имен, что актуально при копировании на носитель с файловой системой FAT и т.д.

Я знаю, что делает xcopy, но она работает медленней и не увидел чем в данном случае лучше — простой copy также умеет «с использованием коротких имен», проверять наличие и др. функции, которые в контексте данного скрипта нафиг не нужны:

Если Вы что то другое, кроме сферического в вакууме «чем-то говорят это лучше», имели в виду, то второй раз предлагаю — напишите код, предполагающий, что xcopy лучше. С моей точки зрения copy лучше, ибо позволяет копировать файлы по сети «с возобновлением». Может, Вы докажете мне обратное, ХЗ.
Я конечно тоже люблю букву X, это видно и по моему нику, но не до такой же степени, чтобы вставлять её в команды без разбора
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.