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

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

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

Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

ask-rus

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\AkelPad\AkelPad.exe %commander_path%\HOTKEY.txt

%COMMANDER_PATH%\Utils\AkelPad\AkelPad.exe
AkelPad
%COMMANDER_PATH%\Utils\AkelPad\

-1
TC 11.58 combo, Windows 11 x64
Аватара пользователя
ask-rus
Сообщения: 2077
Зарегистрирован: Вт ноя 10, 2009 14:06
Откуда: Russian Federation

Сообщение ask-rus »

Мда, а я в поле Параметры ввожу путь до файла... Первый класс.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

по уму, в Параметры и надо – это же параметр для редактора (путь\файл)
Но
1. нужно удваивать %%
2. всё равно не работает
-----------------
похоже на баг
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Есть ещё такой вариант:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\AkelPad\AkelPad.exe
NOTE\Note1.txt
wcmicons.dll,28
Открыть файл в текстовом редакторе
%COMMANDER_PATH%\
или такой:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\AkelPad\AkelPad.exe
..\..\NOTE\Note1.txt
wcmicons.dll,28
Открыть файл в текстовом редакторе
%COMMANDER_PATH%\SOFT\AkelPad\
Tol!k писал(а):похоже на баг
С чего бы? То, что AkelPad не понимает иные переменные среды вне методов, - это данность, а не баг.
С методом будет запускаться без проблем:

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

TOTALCMD#BAR#DATA
%COMMANDER_PATH%\SOFT\AkelPad\AkelPad.exe
/OpenFile("%%COMMANDER_PATH%%\NOTE\Note1.txt")
wcmicons.dll,28
Открыть файл в текстовом редакторе
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Flasher писал(а):AkelPad не понимает
не AkelPad
Изображение
угадай, откуда в этой кнопке раки?

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

TOTALCMD#BAR#DATA
%ProgramFiles%\EditPlus3\editplus.exe
%%commander_path%%\wcx\multiarc\multiarc.ini
%ProgramFiles%\EditPlus3\editplus.exe,4
multiarc.ini


-1
Добавлено спустя 15 минут:

вар. №3

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

TOTALCMD#BAR#DATA
cmd /c start "" "%commander_path%\AkelPad\AkelPad.exe"
"%%commander_path%%\wcx\multiarc\multiarc.ini"
%commander_path%\AkelPad\AkelPad.exe,1
multiarc.ini

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

Сообщение Flasher »

Tol!k писал(а):не AkelPad
А что же ещё? Больше там понимать нечему. В примере про зимовку уже другого редактора касается. TC же не конвертировал там переменные среды никогда, это by disign (сделано для возможности правильной передачи внутренних переменных интерпретаторов и знаков процента). Обсуждалось несколько раз. В памятке я писал о допустимости (внешними программами, разумеется).
Последний пример с cmd я бы, конечно, не стал предлагать. Лучше уж тогда с nircmd.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
bbcby
Сообщения: 58
Зарегистрирован: Вс мар 05, 2006 17:50

Сообщение bbcby »

Здравствуйте. Помогите с кнопкой.
Процедура, которая выполняется почти вручную, есть 2 файла

makeAvs.cmd

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

for %%x in (*.mkv) do (
echo.Import^("template.avs"^)
echo.DoIt^("%%x"^)
) > "%%~nx.avs"
template.avs

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

function DoIt(string filename)
{
	FFmpegSource2(filename, vtrack=-1, atrack=1, width=720, height=480, resizer="LANCZOS", colorspace="YUY2")
	AssumeFPS(24000, 1001)
	ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0)
	#~ FadeIO0(5)
	#~ FadeIO0(5)
	#~ ConvertToStereo()
	return last
}
оба файла лежат в директории с MKV файлами, запуском makeAvs.cmd генерирутются AVS файлы,
напр. имеются MKV:
Castle.s05e01.1080p.WEB-DL.mkv
Castle.s05e02.1080p.WEB-DL.mkv
Castle.s05e03.1080p.WEB-DL.mkv


получаем AVS:
Castle.s05e01.1080p.WEB-DL.avs
Castle.s05e02.1080p.WEB-DL.avs
Castle.s05e03.1080p.WEB-DL.avs


Содержание AVS файла:

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

Import("template.avs")
DoIt("Castle.s05e02.1080p.WEB-DL.mkv")
Хотелось бы на это дело кнопку, которая генерировала бы AVS файлы на выделенные в данный момент в коммандере файлы.
И чтобы темплейты (makeAvs.cmd и template.avs) лежали в своей постоянной директории. А то приходится их постоянно тягать туда-сюда.
Надеюсь изложил понятно. Заранее спасибо за помощь. С CMD.EXE не очень дружу.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

bbcby
Содержимое файла template.avs можно было не приводить. makeAvs.cmd выкинуть. Для кнопки:
Команда: %ComSpec% /c for /f "delims=" %x in
Параметры: ('type "%WF"') do >"%%~nx.avs" (echo.Import^("Полный путь к template.avs"^) & echo.DoIt^("%%x"^))
Путь запуска очистить. Поставить галку "в свёрнутом виде".
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
bbcby
Сообщения: 58
Зарегистрирован: Вс мар 05, 2006 17:50

Сообщение bbcby »

Flasher
Спасибо. Все супер.
Один момент только, если назв. файла по-русски получаем кракозяблы внутри AVS.

Добавлено спустя 29 минут:

Flasher
Ничего не дало.
PS это мой ответ на предыдущее сообщение, которое пропало.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

bbcby
А если вместо пробелов знаки подчёркивания?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
bbcby
Сообщения: 58
Зарегистрирован: Вс мар 05, 2006 17:50

Сообщение bbcby »

Flasher писал(а):bbcby
А если вместо пробелов знаки подчёркивания?
Вы имеете ввиду в имени файла? Если да то ничего. Получается так:

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

Import("D:\avs_auto\template_ff_720.avs") 
DoIt("‹ҐЈҐ­¤ _¤«п_®ЇҐаиЁ.mpg")
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

bbcby
С исходником?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
bbcby
Сообщения: 58
Зарегистрирован: Вс мар 05, 2006 17:50

Сообщение bbcby »

Flasher писал(а):bbcby
С исходником?
Что-то я запутался. Поясню так. Исходное имя файла, на который создается AVS:
Кто поедет в Трускавец.mpg
получаем AVS:
Кто поедет в Трускавец.avs
с содержимым

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

Import("D:\avs_auto\template_ff_720.avs") 
DoIt("Љв® Ї®Ґ¤Ґв ў ’агбЄ ўҐж.mpg")
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Исходник - это предложенный вариант кнопки без исправлений.

Вообще тут дело в правильном прочтении текстовым редактором нужной кодировки. Файл сохраняется в OEM.
Программа-то эти avs как читает?

vbs, чтоб не мучаться:

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

'===================================================================================
' Создание avs-файлов для выбранных mkv-файлов
' Параметр: %L
'===================================================================================
If WScript.Arguments.Count = 0 Then WScript.Quit 
With CreateObject("Scripting.FileSystemObject")
  Set File = .OpenTextFile(WScript.Arguments(0), 1)
  Do While Not File.AtEndOfStream
    F = Trim(File.ReadLine)
    If F <> "" Then
      If StrComp(.GetExtensionName(F), "mkv", 1) = 0 Then
        PF = .GetParentFolderName(F) & "\" : NF = .GetBaseName(F) & ".avs"
        If Not .FileExists(PF & NF) Then .OpenTextFile(PF & NF, 2, True).Write _
        "Import(""template.avs"")" & vbNewLine & "DoIt(""" & .GetFileName(F) & """)"
      End If
    End If
  Loop
End With
К template.avs дописать полный путь.
Работать можно в режиме без подкаталогов и результатов поиска.
Последний раз редактировалось Flasher Чт июн 13, 2013 16:12, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
bbcby
Сообщения: 58
Зарегистрирован: Вс мар 05, 2006 17:50

Сообщение bbcby »

Файл сохраняется в OEM.
template_ff_720.avs в OEM? Ничего не дало.
Программа-то эти avs как читает?
Не понял, какую программу имеете ввиду.

Добавлено спустя 11 минут:
vbs, чтоб не мучаться:
а какие параметры для кнопки?
Ответить