Обсуждение темы "Обмен кнопками"

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
Flasher писал(а):1) В поле Команда: кавычки в пути не нужны. См. памятку.
При перетаскивании на панель элементов, кавычки ставятся автоматически.

Проверьте у себя.
[cut="не работает эта кнопка"]TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Soft\nircmd\nircmd.exe execmd if not exist "Новый текстовый документ.txt"
(copy "%%COMMANDER_PATH%%\Шаблоны_документов\Template.txt" "Новый текстовый документ.txt"|"%%COMMANDER_PATH%%\Plugins\exe\AkelPad.exe" "Новый текстовый документ.txt")
%COMMANDER_PATH%\Plugins\exe\AkelPad.exe
Создать и открыть текстовый файл по шаблону
%COMMANDER_PATH%\Plugins\exe\
1
-1
[/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Dimsok писал(а):Что изменить, чтоб открывалось в эксплорере?
Что ещё за пропаганда вражеских сил? :)
Выделить папку/файл: писал(а):%COMMANDER_PATH%\NirCmd.exe exec "" explorer.exe /select,"~$clipboard$"
Открыть папку/выделить файл: писал(а):%COMMANDER_PATH%\NirCmd.exe execmd if exist "~$clipboard$" (explorer.exe /e,/root,"~$clipboard$") else explorer.exe /select,"~$clipboard$"
Ещё чуть-чуть и про qttabbar заговорим. Давай в след. раз с этим в другое место (хотя бы в ПО). ОК?
И для каких целей данное действие? Что оно решает? Или так, как раньше проходили, чтобы было? :D
Nick писал(а):При перетаскивании на панель элементов, кавычки ставятся автоматически.
Было бы странно, если бы я этого не знал. :wink:

Я проверял такой вариант, всё работает. Только вот путь запуска там не нужен, иначе файлик будет в указанной папке создаваться. И галка "в свёрнутом виде" тут также не нужна.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
Создание текстового файла по шаблону, теперь, вроде, нормально работает.
Параметры кнопки для архивирования с именами (без расширения):

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

Команда: %COMMANDER_PATH%\Soft\nircmd\nircmd.exe execmd %ComSpec% /c set P="%COMMANDER_PATH%\Soft\WinRAR\RAR.exe" a -ep1 -m5 -o -ibck
Параметры: &&If Not Exist %N\ (call %%P%% "%O.rar" %S) Else call %%P%% %N.rar %S
При таком варианте с nircmd не работает (выдается ошибка о прекращение работы с nircmd). Можно ли как-то сделать, чтобы скрывать окно командной строки?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

1)
Nick писал(а):... execmd [s]%ComSpec% /c[/s] ...
>>>
2) Поставить кавычку перед set и в конце параметров.

Но не советую, автообновления в панели не будет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Изображение
Все-равно ошибка.

[cut="Код кнопки:"]

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

TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\Soft\nircmd\nircmd.exe" execmd "set P="%COMMANDER_PATH%\Soft\WinRAR\RAR.exe" a -ep1 -m5 -o -ts
&&If Not Exist %N\ (call %%P%% "%O.rar" %S) Else call %%P%% %N.rar %S"
%COMMANDER_PATH%\Soft\WinRAR\WinRAR.exe
Архивирование файлов

1
-1
[/cut]
Flasher писал(а):Но не советую, автообновления в панели не будет.
Это всегда происходит при использовании с nircmd?
Последний раз редактировалось Nick Пт мар 20, 2015 14:19, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick
А смысл в nircmd_x64? Как 32-битная себя ведёт? И ключ -o тут лишний, как и кавычки подле пути к nircmd (уже второй раз пишу).

Нет, не всегда, тут дело не в nircmd, а в скрытии окон консоли с вызовом определённых программ.

И вместо x64 рекомендую пользоваться переменной окружения, cозданной с пом. Autorun_Sysinfo.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
Flasher писал(а):А смысл в nircmd_x64? Как 32-битная себя ведёт?
Запускается в системе без эмуляторов типа wow64.dll (Win32 Emulation on NT64), нет перенаправлений при работе с файловой системой и реестром, да и поидее должна работать немного побыстрее.
С 32-битной то же самое.
Если в имени папок нет пробелов, то архивирует. Если есть пробелы (при выделении одной папки), то ничего не делает. При выделении нескольких папок - падает процесс.
Flasher писал(а):И ключ -o тут лишний, как и кавычки подле пути к nircmd
Я не всегда использую rar.exe, а бывает, что WinRAR.exe (это по поводу ключа -o) (чтобы при существующем файле выдавался бы запрос с опциями), но не знаю может ли как-то скрывать интерфейс (GUI) nircmd. А кавычки же не мешают, работает, вроде бы, нормально и с ними.

Попробуйте у себя проверить (с именами с пробелами при выделении нескольких папок). Наверно, это из-за параметра "set P" такие проблемы.
Flasher писал(а):И вместо x64 рекомендую пользоваться переменной окружения, cозданной с пом. Autorun_Sysinfo
Можно более подробно, что имеется в виду? (Т.е. использовать nircmd_x86 и как-то использовать ее с утилитой Autorun?)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick писал(а):должна работать немного побыстрее
Сомневаюсь. Если это и отразится, то в миллисекундах при вызове, но не в работе. На самой упаковке вообще никак не отразится.
Nick писал(а):Если есть пробелы (при выделении одной папки), то ничего не делает. При выделении нескольких папок - падает процесс.
Не подтверждаю. Если ? поставить в начале параметров, как строка будет выглядеть?
Nick писал(а):может ли как-то скрывать интерфейс (GUI) nircmd
Мочь - может, но это не касается команды execmd.
Nick писал(а):Можно более подробно, что имеется в виду? (Т.е. использовать nircmd_x86 и как-то использовать ее с утилитой Autorun?)
Имеется в виду создание переменной окружения с пом. плагина Autorun с прописью в его конфиге соотв. строки, а далее с подстановкой этой переменной в путь вместо 32/64. На форуме пару-тройку раз этот момент обсуждался.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Nick
[cut="Про переменные окружения"]В Autorun.cfg перед строкой Pragma AutorunFinalizeSection добавить что-то вроде

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

If %AUTORUN_TCARCH% = 32 Then
  SetEnv /EV NirCmd %COMMANDER_PATH%\Soft\nircmd\nircmd.exe
Else
  SetEnv /EV NirCmd %COMMANDER_PATH%\Soft\nircmd\nircmd64.exe
EndIf
Потом в кнопках можно использовать так:

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

TOTALCMD#BAR#DATA
"%NirCmd%" execmd "set P="%COMMANDER_PATH%\Soft\WinRAR\RAR.exe" a -ep1 -m5 -o -ts
&&If Not Exist %N\ (call %%P%% "%O.rar" %S) Else call %%P%% %N.rar %S"
%COMMANDER_PATH%\Soft\WinRAR\WinRAR.exe
Архивирование файлов

1
-1
У меня таким образом с учётом разрядности прикручены AutoIt и Sudo.

Один нюанс: запуск с повышением прав не наследует подобные внутренние переменные окружения.[/cut]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off
В данном случае не согласен с такой трактовкой, иначе autorun.cfg будет превращаться в большого монстра и отражаться на скорости загрузки ТС, не говоря уже о потенциально огромном списке переменных среды.
Ключ /EV уже давно не требуется (см. справку). Плюс к этому есть ряд примеров, где nircmd вызывается несколько раз из самой себя, в итоге комстрока на выходе при подстановке подобных переменных ненужным образом расползается. Куда логичней делать вставку именно вместо 64.
Хочу заметить, что Rarx64.exe, именно для которой и требуется данная разрядность, в кнопке ты таки упустил из виду.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher писал(а):В данном случае не согласен с такой трактовкой
...
в кнопке ты таки упустил из виду.
Это просто иллюстрация, поясняющий пример, могу отредактировать пост, выделив жирным и цветом поярче словосочетание что-то вроде :)
Flasher писал(а):Ключ /EV уже давно не требуется (см. справку).
Пример скопирован из autorun.example.cfg. В справке не говорится, что параметр убран, только в history_??.txt.
Flasher писал(а):Куда логичней делать вставку именно вместо 64.
Тут скорее личный опыт - такая мысль была и никуда не делась, окончательно не определился: переменную с путём удобнее использовать в командной строке ТС и не очень хочется переименовывать файлы (дефолтные _x64.exe и 64.exe объединить непросто :)).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off писал(а):Это просто иллюстрация, поясняющий пример, могу отредактировать пост, выделив жирным и цветом поярче словосочетание что-то вроде
Не исключаем, что многие этим что-то вроде активно начинают пользоваться, так что поаккуратней с примерами. :wink:
Skif_off писал(а):В справке не говорится, что параметр убран, только в history_??.txt.
В справке параметр вообще не предлагается. Предлагается параметр отключения учёта этих переменных.
Skif_off писал(а):переменную с путём удобнее использовать в командной строке ТС
Можешь привести личный пример использования (супротив имеющимся псевдонимам)?
Skif_off писал(а):дефолтные _x64.exe и 64.exe объединить непросто
В смысле? Как объединить и зачем?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1252
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher писал(а):В справке параметр вообще не предлагается. Предлагается параметр отключения учёта этих переменных.
Пример скопирован из autorun.example.cfg :)
Flasher писал(а):Можешь привести личный пример использования (супротив имеющимся псевдонимам)?
Не понял, какой пример нужен?
[cut="Кусок конфига"]

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

If %AUTORUN_TCARCH% = 32 Then
  SetEnv AutoIt %COMMANDER_PATH%\AutoIt3.exe
  SetEnv Sudo %COMMANDER_PATH%\Utilities\Sudo\Sudo.exe
Else
  SetEnv AutoIt %COMMANDER_PATH%\AutoIt3_x64.exe
  SetEnv Sudo %COMMANDER_PATH%\Utilities\Sudo\Sudo64.exe
EndIf
[/cut]
Нужен пример использования %AutoIt% в командной строке ТС? Очевидно же: %AutoIt% быстрее и удобнее %COMMANDER_PATH%\AutoIt3%64%.exe
Flasher писал(а):В смысле? Как объединить и зачем?
Кусок конфига выше, куда логичней делать вставку именно вместо 64 не очень удобно, если не переименовать х64-версии в едином стиле.

Или я неправильно понял про вставку именно вместо 64?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off писал(а):Пример скопирован из autorun.example.cfg
Теперь забудь про этот пример. :wink:
Skif_off писал(а):Нужен пример использования %AutoIt% в командной строке ТС?
Я не знаю, используешь ты его или нет из комстроки. Если да, то показывай (с учётом ремарки в скобках). Из комстроки в любом случае придётся запускать крайне малую часть тех потенциальных программ, которые имеют разные битности.
Skif_off писал(а):если не переименовать х64-версии в едином стиле
А что мешает? С пом. ИГП - пару сек. :)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

[mod="Avada"]Последующая цепочка сообщений про замену в тестовых файлах перенесена в более подходящее место. Текущая тема предназначена только для обсуждения кнопок, представленных в "Обмене кнопками", и никаких других.[/mod]
Даже самая богатая фантазия
Не представит себе наши безобразия.
Ответить