Описание команды


scrpt

Запуск скриптов.

scrpt=FileScript, ||Parameters, ||&&wait, ||workdir<>, , ||[tc], ||<info>, ||Dialogs

Параметры:

1-й обязательный параметр.
FileScriptПуть. FileScript - полный путь к файлу скрипта (AU3, A3X, VBS, JS, HTA, PS1, AHK)
Можно указывать только имя скрипта, если он находится в папке ...\Files\Scripts\
Дополнительные параметры:
ParametersПараметры. Может быть передано сколько угодно параметров. Разделитель между параметрами ||
&&waitОжидает завершения работы скрипта.
workdir<>Рабочий каталог. Параметр workdir<Path>, где Path - путь к рабочему каталогу.
  Для ряда приложений необходимо прописывать путь каталога.
Дополнительные параметры:
[tc]Расширенный аналог параметров Total Commander. см. Дополнение №12
<info>Получение различной информации. см. Дополнение №10.
DialogsДиалоги. см. Дополнение №18
  Описание
Различные параметры диалогов.
  [input] - диалог ввода информации в InputBox.
  [richinput] - диалог ввода информации в RichInputBox.
  [combo] - диалог выбора информации в ComboBox.
  [group] - диалог выбора информации в GroupBox.
  [check] - диалог выбора информации в CheckBox.
  [edits] - диалог выбора информации в EditBox.
  [sfold] - выбор каталога.
  [zfold] - выбор каталогов.
  [sopen] - выбор файла для открытия.
  [ssave] - выбор файла для сохранения.
  [sicon] - диалог просмотра и выбора значка.
  [msgbx] - окно сообщения MsgBox.
  [updwn] - диалог выбора числовой информации UpDown.
  [image] - диалог выбора изображения.
  [elect] - диалог выбора файлов и папок.
...и другие диалоги.

Примечания:

• Информация созданная обработкой команд утилиты может передаваться в параметры скрипта:
  - через параметры утилиты (во 2-й части дополнительных параметров они перечислены)
  - через глобальные переменные других команд см. Дополнение №23
• При передаче списков (в виде временных файлов) обязательно используется параметр &&wait

Пример получения параметров скриптом vbs:

With WScript Cnt = .Arguments.Count
  If Cnt > 0 Then
    Parameter1 = .Arguments(0)
    MsgBox "Переменная Parameter1 =" & vbNewLine & "<" & Parameter1 & ">"
  End If
  If
Cnt > 1 Then
    Parameter2 = .Arguments(1)
    MsgBox "Переменная Parameter2 =" & vbNewLine & "<" & Parameter2 & ">"
  End If
  If
Cnt > 2 Then
    Parameter3 = .Arguments(2)
    MsgBox "Переменная Parameter3 =" & vbNewLine & "<" & Parameter3 & ">"
  End If
End With



• Для вызова скриптов au3 в них НЕ должно быть ссылок на Include функции.
• Для того, чтобы внести такие функции в скрипт:
    1. можно воспользоваться обфускатором с параметром /SO
    2. создать в папке утилиты папку Include и положить в неё файл с нужными функциями.
    3. скопировать папку Include из Autoit в папку TCIMG

Пример получения параметров Autoit скриптом au3:

If $CmdLine[0]>1 Then
  $Parameter1 = $CmdLine[1]
  MsgBox(4096, "Переменная ", "$Parameter1 =>" & $Parameter1 & "<=")
EndIf
If
$CmdLine[0]>2 Then
  $Parameter2 = $CmdLine[2]
  MsgBox(4097, "Переменная ", "$Parameter2 =>" & $Parameter2 & "<=")
EndIf
If
$CmdLine[0]>3 Then
  $Parameter3 = $CmdLine[3]
  MsgBox(4098, "Переменная ", "$Parameter3 =>" & $Parameter3 & "<=")
EndIf


Пример получения параметров PowerShell скриптом ps1:

param ([string]$Param1,[string]$Param2)
$N1 = "Параметр1: " + $Param1
$N2 = "Параметр2: " + $Param2
write-output $N1
write-output $N2


Пример получения параметров AutoHotkey скриптом ahk:
Для запуска ahk скриптов необходимо в TCIMG.ini в секции [Programs] в ключе AutoHotkey прописать путь к программе.

param1 := A_Args[1]
param2 := A_Args[2]
param3 := A_Args[3]
MsgBox %param1%
MsgBox %param2%
MsgBox %param3%


Команда script только запускает скрипты и не имеет возможности получать информацию от них.
Для получения информации от скриптов для дальнейшего использования в других командах можно:
  • передать путь к файлу, в который скрипт запишет данные; другие команды смогут прочитать данные заданного файла.
  • воспользоваться командами funvb, funjs, funau, которые получают информацию от функций скриптов VBS, JS, AU3.
  • воспользоваться командой cmdbt, которая может запускать и получать информацию из потока заданных программ и скриптов, которые записывают информацию в консоль (PS1).

См. также:

close, closp, dumpp, freez, logpr, openf, openn, opens, openz, prior, procw, resrt, runch, runhp, start, storc, cmdbt

Примеры:
 Как создать кнопку?

scrpt=%%COMMANDER_PATH%%\AkelFiles\Tools\RegExp\RegExpHelp.hta ;; запуск скрипта

scrpt=%%COMMANDER_PATH%%\Scripts\Name.vbs ;; запуск скрипта

scrpt=%%COMMANDER_PATH%%\Scripts\Name.vbs||&&wait ;; запуск скрипта с ожиданием его завершения

scrpt=%%COMMANDER_PATH%%\Scripts\Name.vbs||[info=x50] ;; запуск скрипта и передача информации в первый параметр

scrpt=%%COMMANDER_PATH%%\Scripts\ReplaceTextInFiles.au3||%WL||0||100 ;; запуск скрипта с параметрами

scrpt=3.a3x||%P%N||Свойства: ;; запустить диалог "Свойства" для файла под курсором

scrpt=AHK1.ahk||%P%N ;; пример запуска скрипта ahk с параметрами: запуск блокнота и открытие файла под курсором (в TCIMG.ini в секцию [Programs] в ключе AutoHotkey путь к программе)

scrpt=PotPlayer.au3||10035 ;; увеличить громкость PotPlayer +5

scrpt=PotPlayer.au3||10035|10035|10035|10035 ;; увеличить громкость PotPlayer +20

scrpt=PotPlayer.au3||10036 ;; уменьшить громкость PotPlayer -5

scrpt=PotPlayer.au3||10037 ;; включить/выключить громкость PotPlayer

scrpt=PotPlayer.au3||10038 ;; включить/выключить состояние "Поверх всех окон" PotPlayer

scrpt=PotPlayer.au3||10061 ;; промотать на 30 секунд назад PotPlayer

scrpt=PotPlayer.au3||10062 ;; промотать на 30 секунд вперёд PotPlayer

scrpt=PotPlayer.au3||10069 ;; воспроизведение в произвольном порядке вкл/выкл PotPlayer

scrpt=PotPlayer.au3||10123 ;; предыдущий трек PotPlayer

scrpt=PotPlayer.au3||10124 ;; следующий трек PotPlayer

scrpt=PotPlayer.au3||10213 ;; удалить воспроизводимый трек PotPlayer (с запросом)

scrpt=PotPlayer.au3||20001 ;; пауза/включение воспроизведение PotPlayer

scrpt=PS3.ps1||%P%N ;; пример запуска скрипта ps1 с параметрами: запуск блокнота и открытие файла под курсором

scrpt=ToolTipClipGet.au3||@DesktopWidth-100||@DesktopHeight-200||10||20 ;; запустить скрипт слежения за буфером обмена в правом нижнем углу

scrpt=ToolTipClipGet.au3||0||0||10||20 ;; запустить скрипт слежения за буфером обмена

slist=FOLDC<%WL//1//-2> scrpt=%%COMMANDER_PATH%%\Scripts\Name.au3||[info=x50]||GLOBALSLIST<t>||&&wait ;; запуск скрипта и передача различной информации... с ожиданием завершения

slist=FOLDC<%WL//1//-2> scrpt=%%COMMANDER_PATH%%\Scripts\Name.vbs||[info=x50]||GLOBALSLIST<t>||&&wait ;; запуск скрипта и передача различной информации... с ожиданием завершения


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru