- Код: выделить все
; (c) Ergo. Directory PLaylist Maker
; run as .parser("D:\My music") to playlist D:\My music
; run as .parser("D:\My music", "1") to do the same with absolute paths
Ergo_Temp = pprofolder ++ "Scripts\winamp\allfiles.tmp"
ErgoFolders = pprofolder ++ "Scripts\winamp\mp3folders.lst"
; устанавливаем пути к временным файлам
handle = File.Open(Ergo_Temp , "w")
file.allfiles (arg(1), "file.writeline(handle,'"|'")", "1")
file.close(handle)
; создаем файл в котором перечисленны все файлы и папки из указанного каталога
handle = File.Open(Ergo_Temp, "r")
; еще раз открываем этот файл, но теперь уже только для чтения
fw = File.Open(ErgoFolders, "w")
; создадим еще один временный файл, в котором перечислим все вложенные каталоги
; из указанного в параметре каталога
str_before ="No matter"
if (handle > 0) Do
str = File.Readline(handle)
; читаем первую строку, а дальше запускаем цикл пока не закончится файл
for (lineNum=1;1;LineNum=LineNum+1)
if (File.Eof(handle))
break
str = File.Readstring(handle)
if (not (str == "0")) Do
str= select(str,revindex(str,"\")-1)
if (not (str == str_before)) Do
ErgoName = str ++ "\" ++remove (str,revindex(str,"\")) ++ ".m3u"
fd = File.Open(ErgoName , "w")
ForMoveScript = remove (str,revindex(str,"\")) ++ "=" ++ str
file.writeline(fw, ForMoveScript)
fName = str ++ "\*.mp3"
if (fd > 0) Do
if (arg(2) == "1") Do
file.allfiles (fName, "file.writeline(fd,'"|'")")
Else
file.allfiles (fName, "file.writeline(fd, file.nametype('"|'"))")
Endif
file.close(fd)
Endif
str_before = str
endif
endif
endfor
file.writeline(fw, "sep'r&New Folder=.newfolder")
file.closeall
endif
C:\P\SOUNDS\end.wav
На этом мистика не заканчивается. Вот еще один скрипт. Его смысл в чем. Играет Winamp. Я решаю, что определенную песню необходимо перенести в другую папку и запускаю его. В результате должно появиться меню из папок, в которые я могу перенести играющий файл, выбираю одну из них и после подтверждения файл переносится. Но мистика заключается в том, что после того, как файл перенесен меню с выбором каталога для переноса появляется повторно. Но я не могу в упор найти с какого дуба ему появляться повторно???
- Код: выделить все
; (c) Ergo. Данный скрипт перемещает проигрываемую композицию в выбранный каталог
; весьма полезен при сортировке вашей фонотеки
; Указываем каталог с вашими mp3-файлами:
Maindir = "D:\My Music"
; Редактирование кода ниже не рекомендуется, особенно, если вы не знаете,
; что делаете.
Script_folder = pprofolder ++ "Scripts\Winamp"
ErgoFolders = Script_folder ++ "\folders.tmp"
; Подскрипт проверки кэша директорий. Кэш директорий позволяет осуществлять отображение
; списка директорий на 1-3 секунды быстрее, поэтому скрипт использует кэш.
if (file.validpath(ErgoFolders)) Do
.move@showmenu
Else
gAnswer = MessageBox("yesno question", "Не найден кэш директорий.'rГенерировать?")
If (gAnswer == 6) Do
.move@refresh
Else
Quit
Endif
Endif
; Проверяем запущен ли Winamp. Если нет - выдаем сообщение
@showmenu
if (winamp.running) do
; Получаем полный путь к проигрываемому файлу
value = winamp.track("cur", "filename")
; Открываем меню поддиректорий
folderName = filemenu(ErgoFolders)
if (not (folderName == "")) Do
if (folderName == ".newfolder") Do
Exec NewFolder
File.delete (ErgoFolders)
Else
uAnswer = Messagebox ("yesno question","Переместить файл &(value) 'r в каталог &(folderName)?")
If (uAnswer == 6) Do
winamp.playback("next")
Bar Format Bar !` refresh
;Wait Sleep 2000
file.move (value, folderName)
winamp.pls("refresh")
Quit
Else
Quit
Endif
Endif
Else
Messagebox("ok", "Ошибка!")
Endif
Else
Messagebox ("ok", "Winamp не запущен!")
Endif
file.delete(bat_path)
; file.delete(ErgoFolders)
Quit
; Теперь необходимо проверить наверняка ли был перенесен файл
;fileName = remove (value,revindex(value,"\"))
;Debug &(fileName)
; Обновление списка директорий. Вызывается как .refresh@move
@refresh
bat_path = Script_folder ++ "\listdir.bat"
file.delete(bat_path)
bat_cmd = "dir '"" ++ Maindir ++ "'" /ad /b /s >" ++ ErgoFolders
exec tofile &(bat_path) &(bat_cmd)
do (bat_path, "*hide", "")