Обмен кнопками

Если вы хотите поделиться с другими пользователями секретами Total Commander, знаете интересные опции, приемы, настройки, то вам сюда.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Batya писал(а):Создаем vbs-скрипт
Тема не по скриптам, а по кнопкам к TC (и, желательно, без плагинов) :wink:

В качестве %ComSpec% может быть Command.com (получим облом).
Уж лучше задать явно.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

GGS писал(а):Тема не по скриптам, а по кнопкам к TC (и, желательно, без плагинов)
Плагины здесь совершенно не при чем.
А если ты читал тему, то должен был обратить внимание, что здесь приведено достаточно много vbs-скриптов.
Скрипты по принципу использования ничем не отличаются от батников.
Нет, я не сплю. Я просто медленно моргаю.
GGS
Сообщения: 322
Зарегистрирован: Сб май 02, 2009 13:00

Сообщение GGS »

Batya писал(а):А если ты читал тему, то должен был обратить внимание, что здесь приведено достаточно много vbs-скриптов.
Скрипты по принципу использования ничем не отличаются от батников.
Вот именно. Получается обсуждение скриптов и батников, а не, собственно, кодов кнопок.
Я не против этого, но хотелось сделать код (скрипт) в одну строчку, чтобы получилась самодостаточная кнопка, а не сыылка на стороннюю "примочку".

P.S. vbs-скрипты и .cmd безусловно нужны и решают задачи, порою, гораздо эффективнее, но это уже другой подход.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Народ, а как сделать чтобы ваш скрипт на создание каталога не только его создавал, но и открывал-бы сразу? Удобнейшая кнопка на самом деле :) Ещё-бы новыйй каталог открытым бы на свет божий появлялся ))))
Аватара пользователя
LocKtaR-o-DarK
Сообщения: 349
Зарегистрирован: Пт авг 12, 2005 04:20
Откуда: Москва
Контактная информация:

Сообщение LocKtaR-o-DarK »

_D_V_S_
а указать чем?
открывать можно тоталом или проводником
да и зачем это надо?
неужели так трудно нажать на папку?
Изображение    Изображение    Изображение
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

LocKtaR-o-DarK писал(а):_D_V_S_
а указать чем?
открывать можно тоталом или проводником
да и зачем это надо?
неужели так трудно нажать на папку?
Так и создать новый каталог можно руками от начала до конца. Хоть старым добрым МэйкДиром (MD). И глазами посмотреть имя его, и при совпадении - руками-же переименовать. Однако, кнопка эта сильно облегчает :)
А открытым его (мне) желательно наблюдать - потому что можно нажав на одну (!) кнопку, в соседней панели попадать в пустую папку. Конечно можно и нажать на ЕНТЕР , предварительно перейдя в эту панель и установив курсор на новом каталоге :) Не трудно совсем. Только долго это.

PS Если трудно сделать - к чему столько эмоций? :) Извините за просьбу...
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

_D_V_S_ писал(а):Народ, а как сделать чтобы ваш скрипт ...
Вообще-то, не понятно, почему обращение к народу, у скрипта есть конкретный автор 8)
Если речь о последнем приведенном здесь скрипте, то вот то, что ты хочешь:

Код: Выделить всё

Option Explicit
Dim FSO, WSH, NewName
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
NewName = NextName(WScript.Arguments(0))
FSO.CreateFolder(NewName)
WSH.Run """%Commander_Path%\Totalcmd.exe"" /O /S /L=""" & NewName & """" , 7, True
Set WSH = Nothing
Set FSO = Nothing
WScript.Quit

Function NextName(pName)
  Dim lCurrentFolder, lPath, k
  lCurrentFolder = WSH.CurrentDirectory & ""
  lPath = lCurrentFolder & pName
  If Not FSO.FolderExists(lPath) Then
    NextName = lPath
    Exit Function
  End If
  k = 1
  Do
    lPath = lCurrentFolder & pName & " " & k
    k = k + 1
  Loop While FSO.FolderExists(lPath)
  NextName = lPath
End Function
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Scorpkoms
Сообщения: 27
Зарегистрирован: Пн мар 31, 2008 13:50
Откуда: Россия

Сообщение Scorpkoms »

Доброго времени!
Подскажите пожалуйста,почему безопасное извлечение устройств
не работает на внешнем жестком диске,что нужно изменить?
Спасибо.
Аватара пользователя
LocKtaR-o-DarK
Сообщения: 349
Зарегистрирован: Пт авг 12, 2005 04:20
Откуда: Москва
Контактная информация:

Сообщение LocKtaR-o-DarK »

_D_V_S_, дело не в эмоциях, просто интересно было узнать применение
ну раз надо, значит надо

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd
/c if /i not exist "Каталог" (md "Каталог"&totalcmd /o /s /l="%PКаталог"&exit) else for /l %%a in (2,1,999) do if /i not exist "Каталог%%a" (md "Каталог%%a"&totalcmd /o /s /l="%PКаталог%%a"&exit)
totalcmd.exe,1
Создание папки

1 
если в %path% отсутствует %commander_path%

Код: Выделить всё

TOTALCMD#BAR#DATA
cmd
/c if /i not exist "Каталог" (md "Каталог"&%%commander_path%%\totalcmd /o /s /l="%PКаталог"&exit) else for /l %%a in (2,1,999) do if /i not exist "Каталог%%a" (md "Каталог%%a"&%%commander_path%%\totalcmd /o /s /l="%PКаталог%%a"&exit)
totalcmd.exe,1
Создание папки

1
Scorpkoms, в первом посте темы написано ее предназначение
там же указано, где можно пофлеймить
Последний раз редактировалось LocKtaR-o-DarK Ср май 27, 2009 00:33, всего редактировалось 2 раза.
Изображение    Изображение    Изображение
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Batya писал(а):Если речь о последнем приведенном здесь скрипте, то вот то, что ты хочешь:
...... код ......
Спасибище! :) Это именно то, что было нужно! Работает как надо.
LocKtaR-o-DarK писал(а):_D_V_S_, дело не в эмоциях, просто интересно было узнать применение
ну раз надо, значит надо
...... код ......
:) Спасибо! Но - приведённая кнопка работает только если в активной панели открыт каталог с Тоталом (может надо в системе прописать какие переменные окружения?) - создаёт каталог, открывает его, и если дальше её запускать - в нем уже создаются каталоги без открытия (потому что дальнейшие создаются уже в открытом новом каталоге, т.е. не в Тоталовском) И работает интересно - (если открыт и активен каталог Тотала) создаёт новый каталог и открывает его всегда в левой панели. Немного сумбурно описание получилось :) ...Так было и задумано?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

_D_V_S_ писал(а):Но - приведённая кнопка работает только если в активной панели открыт каталог с Тоталом
Нужно в кнопке
LocKtaR-o-DarK писал(а):totalcmd/o "%PКаталог"
заменить на

Код: Выделить всё

"%%Commander_Path%%\Totalcmd.exe" /O /S /L="%PКаталог"
и
LocKtaR-o-DarK писал(а):totalcmd/o "%PКаталог%%a"
заменить на

Код: Выделить всё

"%%Commander_Path%%\Totalcmd.exe" /O /S /L="%PКаталог%%a"
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
LocKtaR-o-DarK
Сообщения: 349
Зарегистрирован: Пт авг 12, 2005 04:20
Откуда: Москва
Контактная информация:

Сообщение LocKtaR-o-DarK »

_D_V_S_
да, попробуй как рекомендует Batya
это обеспечит полную портативность кнопки
поправил код

или добавь в %path% %commander_path%
у меня это давно сделано, поэтому уже как само собой разумеющееся использую

Batya
/S /L=
для чего нужны эти ключи применительно к конктретной задаче?
Изображение    Изображение    Изображение
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

LocKtaR-o-DarK писал(а):/S /L=
для чего нужны эти ключи применительно к конктретной задаче?
Дык, почитай хэлп.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
_D_V_S_
Сообщения: 39
Зарегистрирован: Сб янв 31, 2009 22:49

Сообщение _D_V_S_ »

Batya писал(а): Нужно в кнопке
......
Всё заработало! :) Спасибо!

PS А вопрос можно? :) А зачем писать скрипт на WSH, когда гораздо компактнее получается всё вместе в виде кнопки? Чтобы не только из-под Тотала работало?
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

_D_V_S_
Писать скрипт или сценарий иногда гораздо выгоднее, чем все просто прописать в кнопке. Например, в твоем случае, если использовать скрипт, то очень просто менять имя создаваемого каталога, изменив параметр вызова скрипта, а не править кнопку в 6-ти местах с риском ошибиться, удалив лишний символ.
К тому же в скрипте\сценарии код написан в несколько строк в виде некой структуры, что облегчает чтение и редактирование кода.
Явное отличие скрипта от сценария - при использовании скрипта не вызывается консоль, и скрипт выполняет действие без лишних окон.
_D_V_S_ писал(а):Чтобы не только из-под Тотала работало?
Да, дейтсвительно, скрипты\сценарии можно вызывать откуда угодно. Главное - правильно передать параметры.
Нет, я не сплю. Я просто медленно моргаю.
Ответить