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 

Single Post  Topic: [Script] Перенос меню в "Избранные каталоги" 
Author Message
BasiL



PostPosted: Thu Oct 15, 2009 12:30    Post subject: [Script] Перенос меню в "Избранные каталоги" Reply with quote

На нетбуках разрешение по вертикали всего 600 точек, по этому имеет смысл максимально минимизировать интерфейс ТС. панель инструментов можно скрывать по хоткею, так же можно поступить и с другими панельками.
Однако, скрыть\показать меню нельзя, можно только его отключить целиком, выбрав пустой *.mnu файл и установив RestrictInterface=1.
Но меню бывает нужно, по этому возникла идея перенести все меню в "избранные каталоги". Т.к. часто бывает, что меню так же настроено "под себя", я сделал скрипт, который может конвертировать mnu файл в формат секции [DirMenu] wincmd.ini
Code:
@echo off
setlocal ENABLEDELAYEDEXPANSION
echo from which menu item we will start?
set /p p=

echo which menufile to convert?
set /p menufile=

echo output filename (text will be added to eof)
set /p file=

rem add first separator
echo menu!p!=->>%file%.tmp

rem add a "Menu" title
set /a p=p+1
echo menu!p!=-Menu>>%file%.tmp
set /a p=p+1

for /f "tokens=*" %%a in ('findstr /c:"MENUITEM" /c:"POPUP" %menufile%') do (
 if "%%a"=="MENUITEM SEPARATOR" (
             echo menu!p!=->>%file%.tmp
             set /a p=p+1
             ) else (
                  if "%%a"=="END_POPUP" (
                  echo menu!p!=-->>%file%.tmp
                  set /a p=p+1
                  ) else (
                      set "name=%%a"
                      set name=!name:"=@!
                      for /f "tokens=1,2,3,4 delims=@" %%A in ("!name!") do (
                         if "%%A"=="POPUP " (
                            echo menu!p!=-%%B>>%file%.tmp   
                            set /a p=p+1
                            ) else (
                               echo menu!p!="%%B">>%file%.tmp
                               set "value=%%C"
                               echo cmd!p!=!value:~2!>>%file%.tmp
                               set /a p=p+1)
                               )
                            )
             )
)
rem close "Menu"
echo menu!p!=-->>%file%.tmp
rem removing \t
for /f "tokens=*" %%A in (%file%.tmp) do (
   set "str=%%A"
   set str=!str:^\t= !
echo !str!>>%file%.txt   
)
del /q %file%.tmp

сохранить в текстовый файл с расширением .cmd (или .bat)

надо ввести номер пункта, котрым заканчивается ваше меню избранных каталогов, можно посмотреть последний номер в секции [DirMenu]
Затем - указать полный путь к вашему mnu файлу
И последнее - указать имя файла, в который запишется результат.
к имени добавится расширение .txt
Так же скрипт использует временный файл с расширением .tmp, который в конце работы удаляется, по этому желательно выбирать имя файла, которого нет в каталоге со скриптом.

Полученный текст надо вставить в секцию [DirMenu] вашего wincmd.ini (если эта секция не перенесена в другой файл, как это сделано у меня).
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group