Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Содержимое папки \Playlists (файлы *.m3u) в Playlists.bar
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Thu Feb 11, 2010 11:57    Post subject: Содержимое папки \Playlists (файлы *.m3u) в Playlists.bar Reply with quote

В папке d:\Total Commander\SOFT\Winamp\Playlists\ постоянно появляются новые плейлисты. Чтобы так же постоянно не добавлять их в кнопку в виде меню "Playlists" ручками, необходимо автоматизировать.

Quote:
d:\Total Commander\BAR\Playlists.bar

_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Thu Feb 11, 2010 21:07    Post subject: Reply with quote

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
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Fri Feb 12, 2010 10:27    Post subject: Reply with quote

Всё радует, да только не создавалась бы "Стрелочка" с возвратом на default.bar, всё-таки у меня кнопка в виде меню, где
d:\Total Commander\BAR\Default.bar вовсе никчему.

А, всё! Как только я прописал реальный путь к default.bar
Quote:
d:\Total Commander\BAR\Default.bar

стрелочка исчезла из виду. Большое благодарю!
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Fri Feb 12, 2010 10:44    Post subject: Reply with quote

Следующий вопрос по теме - привести к портабельности. Ведь здесь не просто изменить это
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
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Feb 12, 2010 14:38    Post subject: Reply with quote

ackep wrote:
Const Bar = "%COMMANDER_PATH%\BAR\Playlists.bar" 'Панель TC

...

Oшибкa: Пyть нe нaйдeн

Поправил - в 42 строке надо вместо "Bar" написать "GetPath(Bar)".
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Fri Feb 12, 2010 15:24    Post subject: Reply with quote

А теперь чуток усложнить, чтобы плейлисты открывались определенным плеером, допустим, этот
Code:
%COMMANDER_PATH%\SOFT\Winamp\winamp.exe "d:\Total Commander\SOFT\Winamp\Playlists\Вахмурка.m3u"


Возможно, чтобы при нажатии на "Обновить" (понимаю, это запуск скрипта) пути в кнопках были через %COMMANDER_PATH%, нежели "d:\Total Commander\"?
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Feb 12, 2010 19:58    Post subject: Reply with quote

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
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Fri Feb 12, 2010 20:07    Post subject: Reply with quote

Batya wrote:
Просто, например, для кнопки перехода на родительскую панель (та самая "Стрелочка") необходимо прописывать развернутый путь, иначе она будет отображаться.

В твоем случае со скриптом, то да. В обычном случае у меня там кнопки-менюшки... "стрелочки" не отображаются, хотя %COMMANDER_PATH% повсюду.
Ещё раз спасибо.

Quote:
Фaйл нe нaйдeн!

Shocked
Какая-то нелепая кавычкаSmile
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
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sat Feb 13, 2010 11:15    Post subject: Reply with quote

Перепробовал и так, и сяк, не могу обнаружить хитрую кавычку-шпиона.
Quote:
Фaйл нe нaйдeн!

К тому же нет завершающей кавычки после .m3u" в кнопке...
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Sat Feb 13, 2010 12:44    Post subject: Reply with quote

ackep wrote:
Какая-то нелепая кавычка

Ты полностью строку поменял?
В конце строки кавычки не пропущены?!
Quote:
& F.Path & """" & vbNewLine &_

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sat Feb 13, 2010 13:08    Post subject: Reply with quote

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
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Feb 13, 2010 13:26    Post subject: Reply with quote

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
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sat Feb 13, 2010 13:32    Post subject: Reply with quote

Всё работает, мои вопросы исчерпаны.
Tol!k, спасибо.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Sat Feb 13, 2010 16:04    Post subject: Reply with quote

ackep wrote:
Перепробовал и так, и сяк, не могу обнаружить хитрую кавычку-шпиона.

Сейчас сохранил в ручном режиме. Весьма странно нужная строка храниться в bar-файле.
Вообщем, нужно так:
Code:
                  "cmd"    & CStr(i) & "=""""%COMMANDER_PATH%\SOFT\Winamp\winamp.exe"" """ & F.Path & vbNewLine &_


Добавлено: Долго не отравлял. Опередили Smile
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
ask-rus



Joined: 10 Nov 2009
Posts: 2076
Location: Russian Federation

Post (Separately) Posted: Sun Feb 14, 2010 10:13    Post subject: Reply with quote

Batya, с последним кодом тоже голяк - открывается проводник со скриптами о_О.
Остановился на Tol!k-овском. Много кавычек, но работает как часы.
_________________
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group