View previous topic :: View next topic |
Author |
Message |
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Thu Feb 11, 2010 11:57 Post subject: Содержимое папки \Playlists (файлы *.m3u) в Playlists.bar |
|
|
В папке d:\Total Commander\SOFT\Winamp\Playlists\ постоянно появляются новые плейлисты. Чтобы так же постоянно не добавлять их в кнопку в виде меню "Playlists" ручками, необходимо автоматизировать.
Quote: | d:\Total Commander\BAR\Playlists.bar |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Thu Feb 11, 2010 21:07 Post subject: |
|
|
vbs:
Code: | '===================================================================
' Создание панели TC, содержащей ссылки на m3u-файлы заданной папки
'===================================================================
Option Explicit
'========== Изменяемые параметры ===================================
Const FileExt = "m3u" 'Расширение обрабатываемых файлов
Const FileIcon = "%SystemRoot%\system32\shell32.dll" 'Файл иконок
Const NumIcon = 116 'Номер иконки в файле иконок
Const Folder = "d:\Total Commander\SOFT\Winamp\Playlists\" 'Обрабатываемая папка
Const Bar = "d:\Total Commander\BAR\Playlists.bar" 'Панель TC
'===================================================================
Dim FSO, WSH, F, Text, i
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
i = 4
For Each F In FSO.GetFolder(GetPath(Folder)).Files
If LCase(FSO.GetExtensionName(F.Path)) = LCase(FileExt) Then
i = i + 1
Text = Text & "button" & CStr(i) & "=" & FileIcon & "," & NumIcon & vbNewLine &_
"cmd" & CStr(i) & "=" & F.Path & vbNewLine &_
"iconic" & CStr(i) & "=0" & vbNewLine &_
"menu" & CStr(i) & "=" & FSO.GetBaseName(F.Path) & vbNewLine
End If
Next
Text = "[Buttonbar]" & vbNewLine &_
"Buttoncount=" & CStr(i) & vbNewLine &_
"button1=" & GetPath("%Commander_Path%\wcmicons.dll,15") & vbNewLine &_
"cmd1=" & GetPath("%Commander_Path%\default.bar") & vbNewLine &_
"iconic1=0" & vbNewLine &_
"button2=" & vbNewLine &_
"iconic2=0" & vbNewLine &_
"button3=" & GetPath("%Commander_Path%\wcmicons.dll") & vbNewLine &_
"cmd3=" & WScript.ScriptFullName & vbNewLine &_
"iconic3=0" & vbNewLine &_
"menu3=Обновить" & vbNewLine &_
"button4=" & vbNewLine &_
"iconic4=0" & vbNewLine &_
Text
FSO.OpenTextFile(GetPath(Bar), 2, True).Write Text
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function
|
_________________ Нет, я не сплю. Я просто медленно моргаю.
Last edited by Batya on Fri Feb 12, 2010 14:36; edited 1 time in total |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Fri Feb 12, 2010 10:27 Post subject: |
|
|
Всё радует, да только не создавалась бы "Стрелочка" с возвратом на default.bar, всё-таки у меня кнопка в виде меню, где
d:\Total Commander\BAR\Default.bar вовсе никчему.
А, всё! Как только я прописал реальный путь к default.bar
Quote: | d:\Total Commander\BAR\Default.bar |
стрелочка исчезла из виду. Большое благодарю! _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Fri Feb 12, 2010 10:44 Post subject: |
|
|
Следующий вопрос по теме - привести к портабельности. Ведь здесь не просто изменить это
Code: | Const Folder = "d:\Total Commander\SOFT\Winamp\Playlists\" 'Обрабатываемая папка
Const Bar = "d:\Total Commander\BAR\Playlists.bar" 'Панель TC |
на это?
Code: | Const Folder = "%COMMANDER_PATH%\SOFT\Winamp\Playlists\" 'Обрабатываемая папка
Const Bar = "%COMMANDER_PATH%\BAR\Playlists.bar" 'Панель TC |
Или так оно и есть О_о (?)
Видимо нет...
Quote: | Cцeнapий: d:\Total Commander\PLUGINS\vbs\123.vbs
Cтpoкa: 42
Cимвoл: 1
Oшибкa: Пyть нe нaйдeн
Кoд: 800A004C
Иcтoчник: Oшибкa выпoлнeния Microsoft VBScript |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Feb 12, 2010 14:38 Post subject: |
|
|
ackep wrote: | Const Bar = "%COMMANDER_PATH%\BAR\Playlists.bar" 'Панель TC
...
Oшибкa: Пyть нe нaйдeн |
Поправил - в 42 строке надо вместо "Bar" написать "GetPath(Bar)". _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Fri Feb 12, 2010 15:24 Post subject: |
|
|
А теперь чуток усложнить, чтобы плейлисты открывались определенным плеером, допустим, этот
Code: | %COMMANDER_PATH%\SOFT\Winamp\winamp.exe "d:\Total Commander\SOFT\Winamp\Playlists\Вахмурка.m3u" |
Возможно, чтобы при нажатии на "Обновить" (понимаю, это запуск скрипта) пути в кнопках были через %COMMANDER_PATH%, нежели "d:\Total Commander\"? _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Fri Feb 12, 2010 19:58 Post subject: |
|
|
ackep wrote: | А теперь чуток усложнить, чтобы плейлисты открывались определенным плеером, допустим, этот
Код:
%COMMANDER_PATH%\SOFT\Winamp\winamp.exe |
Меняем строку Code: | "cmd" & CStr(i) & "=" & F.Path & vbNewLine &_ | на Code: | "cmd" & CStr(i) & "= ""%COMMANDER_PATH%\SOFT\Winamp\winamp.exe"" """ & F.Path & """" & vbNewLine &_ |
ackep wrote: | Возможно, чтобы при нажатии на "Обновить" (понимаю, это запуск скрипта) пути в кнопках были через %COMMANDER_PATH%, нежели "d:\Total Commander\"? | А зачем? Скрипт ведь всегда корректно поменяет при его запуске. Просто, например, для кнопки перехода на родительскую панель (та самая "Стрелочка") необходимо прописывать развернутый путь, иначе она будет отображаться. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Fri Feb 12, 2010 20:07 Post subject: |
|
|
Batya wrote: | Просто, например, для кнопки перехода на родительскую панель (та самая "Стрелочка") необходимо прописывать развернутый путь, иначе она будет отображаться. |
В твоем случае со скриптом, то да. В обычном случае у меня там кнопки-менюшки... "стрелочки" не отображаются, хотя %COMMANDER_PATH% повсюду.
Ещё раз спасибо.
Какая-то нелепая кавычка
Quote: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\Winamp\winamp.exe" "D:\Total Commander\SOFT\Winamp\Playlists\1.m3u
%SystemRoot%\system32\shell32.dll,116
1
0
-1 |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sat Feb 13, 2010 11:15 Post subject: |
|
|
Перепробовал и так, и сяк, не могу обнаружить хитрую кавычку-шпиона.
К тому же нет завершающей кавычки после .m3u" в кнопке... _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Sat Feb 13, 2010 12:44 Post subject: |
|
|
ackep wrote: | Какая-то нелепая кавычка |
Ты полностью строку поменял?
В конце строки кавычки не пропущены?! Quote: | & F.Path & """" & vbNewLine &_ |
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sat Feb 13, 2010 13:08 Post subject: |
|
|
Code: | '===================================================================
' Создание панели TC, содержащей ссылки на m3u-файлы заданной папки
'===================================================================
Option Explicit
'========== Изменяемые параметры ===================================
Const FileExt = "m3u" 'Расширение обрабатываемых файлов
Const FileIcon = "%COMMANDER_PATH%\SOFT\Winamp\winamp.exe" 'Файл иконок
Const NumIcon = 1 'Номер иконки в файле иконок
Const Folder = "%COMMANDER_PATH%\SOFT\Winamp\Playlists\" 'Обрабатываемая папка
Const Bar = "%COMMANDER_PATH%\BAR\Playlists.bar" 'Панель TC
'===================================================================
Dim FSO, WSH, F, Text, i
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
i = 4
For Each F In FSO.GetFolder(GetPath(Folder)).Files
If LCase(FSO.GetExtensionName(F.Path)) = LCase(FileExt) Then
i = i + 1
Text = Text & "button" & CStr(i) & "=" & FileIcon & "," & NumIcon & vbNewLine &_
"cmd" & CStr(i) & "= ""%COMMANDER_PATH%\SOFT\Winamp\winamp.exe"" """ & F.Path & """" & vbNewLine &_
"iconic" & CStr(i) & "=0" & vbNewLine &_
"menu" & CStr(i) & "=" & FSO.GetBaseName(F.Path) & vbNewLine
End If
Next
Text = "[Buttonbar]" & vbNewLine &_
"Buttoncount=" & CStr(i) & vbNewLine &_
"button1=" & GetPath("%COMMANDER_PATH%\wcmicons.dll,15") & vbNewLine &_
"cmd1=" & GetPath("%COMMANDER_PATH%\BAR\default.bar") & vbNewLine &_
"iconic1=0" & vbNewLine &_
"button2=" & vbNewLine &_
"iconic2=0" & vbNewLine &_
"button3=" & GetPath("%COMMANDER_PATH%\ICO\refresh.ico") & vbNewLine &_
"cmd3=" & WScript.ScriptFullName & vbNewLine &_
"iconic3=0" & vbNewLine &_
"menu3=Обновить" & vbNewLine &_
"button4=" & vbNewLine &_
"iconic4=0" & vbNewLine &_
Text
FSO.OpenTextFile(GetPath(Bar), 2, True).Write Text
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit 0
Function GetPath(pPath)
GetPath = FSO.GetAbsolutePathName(WSH.ExpandEnvironmentStrings(pPath))
End Function |
_________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sat Feb 13, 2010 13:26 Post subject: |
|
|
Batya wrote: | ackep wrote: | Какая-то нелепая кавычка | В конце строки кавычки не пропущены?! | Там нужна пара кавычек Code: | "cmd" & CStr(i) & "=""""%COMMANDER_PATH%\SOFT\Winamp\winamp.exe"" """ & F.Path & """""" & vbNewLine &_ |
Last edited by Tol!k on Sat Feb 13, 2010 13:33; edited 1 time in total |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sat Feb 13, 2010 13:32 Post subject: |
|
|
Всё работает, мои вопросы исчерпаны.
Tol!k, спасибо. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2218 Location: Москва, Россия
|
(Separately) Posted: Sat Feb 13, 2010 16:04 Post subject: |
|
|
ackep wrote: | Перепробовал и так, и сяк, не могу обнаружить хитрую кавычку-шпиона. |
Сейчас сохранил в ручном режиме. Весьма странно нужная строка храниться в bar-файле.
Вообщем, нужно так:
Code: | "cmd" & CStr(i) & "=""""%COMMANDER_PATH%\SOFT\Winamp\winamp.exe"" """ & F.Path & vbNewLine &_ |
Добавлено: Долго не отравлял. Опередили _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Feb 14, 2010 10:13 Post subject: |
|
|
Batya, с последним кодом тоже голяк - открывается проводник со скриптами о_О.
Остановился на Tol!k-овском. Много кавычек, но работает как часы. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
|