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


await

Приостановка выполнение последующих команд до выполнения условия.

await=Mode

Параметры:

ModeРежим приостановкиMode||Timeout||Conditions , где:
  Mode - режим приостановки.
  Timeout[необязательный] - приостановка в миллисекундах, по умолчанию 0 - бесконечное ожидание.
    для дополнительного формата необходимо в конце добавить символ:
      s - задержка в секундах.
      n - задержка в минутах.
      h - задержка в часах.
      d - задержка в днях.

  Mode - режим:
    0 - проверка изменения буфера обмена. 0||Timeout||String||Include
      String [необязательный] - возможны варианты:
        • слово или фраза для поиска в буфере обмена.
        • &&RegExp - регулярное выражения поиска.
        • ??Key - ключ из TCIMG.ini из секции [FormatUser], в котором прописано регулярное выражение для поиска.
      Include [необязательный] - включить или исключить указанное в условии:
        0 - найти всё кроме заданного условия.
        1 - найти указанное (по умолчанию).

    1 - проверка изменения в заданном каталоге. 1||Timeout||Folder||Subtree||Filter||Name||Include
      Folder - путь в каталогу в котором будет производится мониторинг.
      Subtree [необязательный] - рекурсия:
        0 - проверка производится в корневой папке (по умолчанию).
        1 - с рекурсией.
      Filter [необязательный] - что отслеживать:
        0 - отслеживаются любые изменения (по умолчанию).
        нужные цифры могут прописываться через запятую.
        1 - отслеживается создание объекта.
        2 - отслеживается удаление/перемещение объекта.
        3 - отслеживается изменение объекта (атрибуты, дата, содержимое).
        4 - отслеживается переименование объекта.
      Name [необязательный] - проверка имени объекта, возможны варианты:
        • имя или часть имени файла или каталога.
        • &&RegExp - регулярное выражения поиска.
        • ??Key - ключ из TCIMG.ini из секции [FormatUser], в котором прописано регулярное выражение для поиска.
      Include [необязательный] - включить или исключить указанное в условии:
        0 - найти всё кроме заданного условия.
        1 - найти указанное (по умолчанию).
    2 - проверка изменения значения ключа INI файла. 2||Timeout||FileINI||Section||Key||Value||Include
      FileINI - путь к стандартному ini-файлу.
      Section - имя секции в ini-файле.
      Key - имя ключа параметра в ini-файле, значение которого проверяется.
      Value [необязательный] - проверка значения ключа, возможны варианты:
        • слово или фраза для поиска.
        • &&RegExp - регулярное выражения поиска.
        • ??Key - ключ из TCIMG.ini из секции [FormatUser], в котором прописано регулярное выражение для поиска.
      Include [необязательный] - включить или исключить указанное в условии:
        0 - найти всё кроме заданного условия.
        1 - найти указанное (по умолчанию).
    3 - проверка изменения каталога. 3||Timeout||Folder||ParamTest
      Folder - путь в каталогу в котором будет производится мониторинг.
      ParamTest - строка параметров такая же как в параметре test<ParamTest> см. Дополнение №16.
    4 - проверка изменения файла. 4||Timeout||File||ParamTest
      File - путь в файлу для которого будет производится мониторинг.
      ParamTest - строка параметров такая же как в параметре test<ParamTest> см. Дополнение №16.
    5 - проверка изменения файла. 5||Timeout||File||ParamTest
      File - путь в файлу для которого будет производится мониторинг.
      ParamTest - строка параметров такая же как в параметре test<ParamTest> см. Дополнение №16.
      отличается от режима "4" тем, что не проверяется физическое изменение файла, файл передаётся напрямую в параметр test<>
      актуально для "заблокированных" файлов или файлов, в которые идёт запись информации сторонними программами.
    9 - проверка указанного окна. 9||Timeout||Window||Option
      Window - дескриптор/класс окна. Варианты см. Дополнение №36.
      Option
        0 - приостановка до появления указанного окна.
        ниже параметры при которых окно должно существовать, в ином случае приостановки не будет.
        1 - приостановка до активизации указанного окна.
        2 - приостановка до закрытия указанного окна.
        3 - приостановка до того как указанное окно перестанет быть активным.
        4 - приостановка до того как окно не будет свёрнуто.
        5 - приостановка до того как окно будет не свёрнуто.
        6 - приостановка до того как окно не будет развёрнуто.
        7 - приостановка до того как окно будет не развёрнуто.
        8 - приостановка до того как окно будет не развёрнуто и не свёрнуто.
        9 - приостановка до того как окно не будет либо развёрнуто либо свёрнуто.
       10 - приостановка до того как окно не будет перемещено.
       11 - приостановка до того как ширина окна не изменится.
       12 - приостановка до того как высота окна не изменится.
       13 - приостановка до того как ширина или высота окна не изменится.
    10 - проверка текста элементов указанного окна. 10||Timeout||Window||Level||String||Include
      Window - дескриптор/класс окна. Варианты см. Дополнение №36.
      Level - уровень дочерних элементов (по умолчанию 0 - получение информации со всех элементов)
      String [необязательный] - возможны варианты:
        • слово или фраза для поиска в информации элементов окна.
        • &&RegExp - регулярное выражения поиска.
        • ??Key - ключ из TCIMG.ini из секции [FormatUser], в котором прописано регулярное выражение для поиска.
      Include [необязательный] - включить или исключить указанное в условии:
        0 - найти всё кроме заданного условия.
        1 - найти указанное (по умолчанию).
      приостановка пока не будет найдена заданная фраза в элементах окна.
      информация в которой происходит поиск вы можете посмотреть в команде: infos=2||25||WINDOW||0||1 GLOBALINFOS1<a>
    20 - проверка панели инструментов Total Commander. 20||Timeout||Option
      Option
        0 - панель инструментов.
        1 - вертикальная панель инструментов.
      приостановка пока не будет открыта другая панель инструментов.
      если панель инструментов отключена, то приостановки не будет.
    30 - проверка нажатия клавиш(и). 30||Timeout||HotKey
      HotKey - значение или значения клавиш, прописанных через запятую см. Дополнение №16.
      приостановка пока не будет нажата заданная клавиша (нажаты заданные клавиши).

Примечания:

Команда имеет возможность передавать другим командам информацию через именные глобальные переменные. см. Дополнение №23

Имя переменнойОписание
GLOBALAWAITмассив выходных данных, варианты:
Если произошла какая-либо ошибка или выход из команды произошёл по заданному Timeout, то в 1-ю ячейку записывается 'Null'
При Mode=0 записываются данные буфера обмена.
При Mode=1 записывается путь изменённого/созданного/удалённого объекта. При переименовании в 1-ю ячейку записывается бывший путь объекта, во 2-ю новый путь.
При Mode=2 записывается новое значение ключа.
При Mode=3 если мониторинг прошёл успешно, то записывается путь заданного каталога.
При Mode=4 и 5 если мониторинг прошёл успешно, то записывается путь заданного файла.
При Mode=9 если действие с окном прошло успешно, то записывается дескриптор окна, либо 1 при Option=2
При Mode=10 если информация найдена, то записывается дескриптор окна.
При Mode=20 возвращается имя BAR файла, если панель инструментов отключена или отключается, то возвращается 'Null'

См. также:

beepss, delvlc, dilog, fontx, formt, imgpr, infbx, infht, itray, movlc, posts, prgrs, shape, sndps, style, stylp, tcgup, tslit, voice, watch, winls, wnamp

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

<FOR> 1 <TO> 9999999 exect=$var_i=@MIN=60?_CmdCm('$FOREXIT=1'):0 cends=<info=s30> await=0 aends=x||##rndm<3|10> creat=$f254||buf-GLOBALAENDS<1>.txt||content<$GLOBALAENDS[1]>||code<4>||owrite<1> bends=<info=o30$f254\buf-GLOBALAENDS<1>.txt> GLOBALCENDS<a> GLOBALBENDS<a> dends=<info=n49|GLOBALBENDS<1>-GLOBALCENDS<1>> GLOBALDENDS<a> exect=$var_trig=GLOBALDENDS<1>>=300?_CmdCm('infbx=InfoBox_TEST1'):0 delsm=$f254\buf-GLOBALAENDS<1>.txt||1 <NEXT> tempxx ;; запустить отслеживание времени для последнего доступа к буферу (на определенное время в минутах, максимально 60 минут) и если оно больше 5 минут, вывести уведомление

await=0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена

await=0||0||&&(\d) infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не появится любая цифра

await=0||0||&&(\d)||0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не появится информация, в которой не будет не одной цифры

await=0||0||??words1 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не появится русское слово более 2-х символов

await=0||0||??words1||0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не будет русского слова более 2-х символов

await=0||0||Name infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не появится слово "Name"

await=0||0||Name||0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет изменён буфера обмена и пока в нём не будет слово "Name"

await=0||5s infbx=InfoBox_TEST1 ;; приостановить действие команд на 5 секунд или пока не будет изменён буфера обмена

await=1||0||"%P" infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдут какие-либо изменения

await=1||0||"%P"||0||0||&&(\d) infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт любое изменение объекта, в котором есть цифра

await=1||0||"%P"||0||0||??words1 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт любое изменение объекта, в котором есть русское слово более 2-х символов

await=1||0||"%P"||0||0||Name infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт любое изменение объекта, в котором есть слово "Name"

await=1||0||"%P"||0||0||Name||0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт любое изменение объекта, в котором нет слова "Name"

await=1||0||"%P"||0||1 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт создания объекта

await=1||0||"%P"||0||1,4||&&^Test\.xxx$ infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не появится файл Test.xxx

await=1||0||"%P"||0||2 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папке не произойдёт создания объекта

await=1||0||"%P"||0||3||&&^\Q%N\E$ infbx=InfoBox_TEST1 ;; приостановить действие команд пока файл под курсором не будет изменён (атрибуты, дата, содержимое)

await=1||0||"%P"||1 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в текущей папке (с рекурсией) не произойдут какие-либо изменения

await=2||0||C:\File.ini||xxx||key infbx=InfoBox_TEST1 ;; приостановить действие команд пока в ini файле не изменится значение ключа key в секции xxx

await=2||0||C:\File.ini||xxx||key||&&(\d) infbx=InfoBox_TEST1 ;; приостановить действие команд пока в ini файле не изменится значение ключа key в секции xxx и пока в значении не появится цифра

await=2||0||C:\File.ini||xxx||key||??words2 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в ini файле не изменится значение ключа key в секции xxx и пока в значении не появится более 2-х латинских символов

await=2||0||C:\File.ini||xxx||key||Name infbx=InfoBox_TEST1 ;; приостановить действие команд пока в ini файле не изменится значение ключа key в секции xxx и пока в значении не появится слово "Name"

await=20||0||0 sends=@<info=x50> GLOBALSENDS<a> ;; приостановить действие команд пока не будет открыта другая основная панель инструментов (TC 10.5)

await=20||0||1 sends=@<info=x50|1> GLOBALSENDS<a> ;; приостановить действие команд пока не будет открыта другая вертикальная панель инструментов (TC 10.5)

await=3||0||"%P"||10f!!=5!!=5 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в текущей папке с рекурсией не будет ровно 5 файлов и 5 подпапок (если они уже есть, то приостановки не будет)

await=3||0||"%P"||12f!!=0!!=0 infbx=InfoBox_TEST1 ;; приостановить действие команд пока текущая папка не станет пустой (если она уже пустая, то приостановки не будет)

await=3||0||"%P"||12f!!=5!!=5 infbx=InfoBox_TEST1 ;; приостановить действие команд пока в корне текущей папки не будет ровно 5 файлов и 5 подпапок (если они уже есть, то приостановки не будет)

await=30||0||11 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет нажата клавиша CTRL

await=30||0||11,10,41 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет нажаты клавиши CTRL+SHIFT+A

await=30||0||24 infbx=InfoBox_TEST1 ;; приостановить действие команд пока не будет нажата клавиша HOME

creat="%P"||Test.xxx await=1||0||"%P"||0||2||&&^Test\.xxx$ infbx=InfoBox_TEST1 ;; приостановить действие команд пока из текущей папки не будет удалён/перемещён файл Test.xxx

global await=0 infbx=InfoBox_TEST1 GLOBALAWAIT<a> ;; приостановить действие команд пока не будет изменён буфера обмена и записать новое содержимое в глобальную переменную

global await=1||0||"%P"||0||4 GLOBALAWAIT<a> ;; приостановить действие команд пока в корне текущей папке не произойдёт переименование объекта

global await=1||30s||"%P"||0||4 GLOBALAWAIT<a> ;; приостановить действие команд пока в корне текущей папке не произойдёт переименование объекта, если нет, то через 30 секунд слежение за папкой прекращается

global await=2||0||C:\File.ini||xxx||key GLOBALAWAIT<a> ;; приостановить действие команд пока в ini файле не изменится значение ключа key в секции xxx

global await=20||0||0 GLOBALAWAIT<a> ;; приостановить действие команд пока не будет открыта другая основная панель инструментов (TC 10.5)

global await=20||0||1 GLOBALAWAIT<a> ;; приостановить действие команд пока не будет открыта другая вертикальная панель инструментов (TC 10.5)

global await=3||0||"%P"||1r!!4M GLOBALAWAIT<a> ;; приостановить действие команд пока размер текущей папки с рекурсией не будет больше 4 Mb (если размер уже больше, то приостановки не будет)

global await=3||0||"%P"||1r!!4M!! GLOBALAWAIT<a> ;; приостановить действие команд пока размер текущей папки в корне не будет больше 4 Mb (если размер уже больше, то приостановки не будет)

global await=30||30s||11 GLOBALAWAIT<a> ;; приостановить действие команд на 30 секунд пока не будет нажата клавиша CTRL

global await=4||0||%P%N||1r!!1M GLOBALAWAIT<a> ;; приостановить действие команд пока размер файла под курсором не превысит 1 Mb (если размер уже больше, то приостановки не будет)

global await=4||0||%P%N||2r!!0B GLOBALAWAIT<a> ;; приостановить действие команд пока размер файла под курсором не обнулится (если размер уже нулевой, то приостановки не будет)

global await=4||20n||%P%N||1r!!1M GLOBALAWAIT<a> ;; приостановить действие команд на 20 минут пока размер файла под курсором не превысит 1 Mb (если размер уже больше, то приостановки не будет)

global await=9||0||[CLASS:Notepad]||0 GLOBALAWAIT<a> ;; приостановить действие команд до появления указанного окна (если оно уже существует, то приостановки не будет)

global await=9||0||[CLASS:Notepad]||1 GLOBALAWAIT<a> ;; приостановить действие команд до активизации указанного окна

global await=9||0||[CLASS:Notepad]||10 GLOBALAWAIT<a> ;; приостановить действие команд пока окно не будет перемещено

global await=9||0||[CLASS:Notepad]||11 GLOBALAWAIT<a> ;; приостановить действие команд пока ширина окна не изменится

global await=9||0||[CLASS:Notepad]||12 GLOBALAWAIT<a> ;; приостановить действие команд пока высота окна не изменится

global await=9||0||[CLASS:Notepad]||13 GLOBALAWAIT<a> ;; приостановить действие команд пока ширина или высота окна не изменится

global await=9||0||[CLASS:Notepad]||2 GLOBALAWAIT<a> ;; приостановить действие команд до закрытия указанного окна

global await=9||0||[CLASS:Notepad]||4 GLOBALAWAIT<a> ;; приостановить действие команд пока окно не будет свёрнуто

global await=9||0||[CLASS:Notepad]||5 GLOBALAWAIT<a> ;; приостановить действие команд пока окно будет не свёрнуто

global await=9||0||[CLASS:Notepad]||6 GLOBALAWAIT<a> ;; приостановить действие команд пока окно не будет развёрнуто

global await=9||0||[CLASS:Notepad]||7 GLOBALAWAIT<a> ;; приостановить действие команд пока окно будет не развёрнуто

global await=9||0||[CLASS:Notepad]||8 GLOBALAWAIT<a> ;; приостановить действие команд пока окно будет не развёрнуто и не свёрнуто

global await=9||0||[CLASS:Notepad]||9 GLOBALAWAIT<a> ;; приостановить действие команд пока окно не будет либо развёрнуто либо свёрнуто

global start=notepad await=9||0||[CLASS:Notepad]||0 await=10||0||[CLASS:Notepad]||0||&&\|Value=привет\| GLOBALAWAIT<a> ;; запустить блокнот и приостановить действие команд пока в окне не появится надпись "привет"

global start=notepad await=9||0||[CLASS:Notepad]||0 await=10||0||GLOBALAWAIT<1>||0||&&\|Value=.*привет.*\| GLOBALAWAIT<a> ;; запустить блокнот и приостановить действие команд пока в окне не появится в любом месте надпись "привет"

global start=notepad await=9||0||[CLASS:Notepad]||0 await=10||0||GLOBALAWAIT<1>||0||&&\|Value=привет\| GLOBALAWAIT<a> ;; запустить блокнот и приостановить действие команд пока в окне не появится надпись "привет"

global start=notepad||%P%N||&&procwait await=9||0||[CLASS:Notepad]||3 GLOBALAWAIT<a> ;; запустить Notepad с файлом под курсором и приостановить действие команд до того как указанное окно перестанет быть активным

itray=3 slist=cliplist||formt<1,63> <FOR> 1 <TO> GLOBALSLIST<0> await=30||0||24 openf=GLOBALSLIST<:INDEX:>||Browser||&&wait <NEXT> ;; Поочередное открытие списка ссылок из буфера в браузере при нажатии клавиши HOME

itray=3 slist=cliplist||formt<1,63> <FOR> 1 <TO> GLOBALSLIST<0> rends=:INDEX: openf=GLOBALSLIST<:INDEX:>||Browser||&&wait exect=$var_trig1=(GLOBALRENDS<1><GLOBALSLIST<0>)?_CmdCm('await=30¦¦0¦¦24'):0 <NEXT> ;; поочередное открытие списка ссылок из буфера в браузере (последующая ссылка открывается после нажатия клавиши HOME)

sends=%WL??-1||&?(?mi)^.+\.gif$ forpgs <FOR> 1 <TO> GLOBALSENDS<0> bends=@GLOBALSENDS<:INDEX:>??-1||&?(.+\\)([^\\]+) start=SGIFPRO||param<GLOBALSENDS<:INDEX:>>||&&hide await=1||0||GLOBALBENDS<1>||1,3||GLOBALBENDS<2>.BAK close=SGIFPRO.exe <NEXT> ;; передать поочерёдно список выделенных gif файлов в программу SGIFPRO, отслеживать создание файла BAK, после чего процесс программы закрывается

start=C:\Tor\tor.exe||-f||torrc||workdir<C:\Tor\>||&&procwait||&&min pause=1s global await=5||0||C:\Tor\notice.log||1t!!100%%~~(done) GLOBALAWAIT<a> close=tor.exe delsm=C:\Tor\notice.log||1 ;; запустить программу tor.exe, приостановить дальнейшее действие команд, пока в файле notice.log не появится фраза "100%~~(done)", после появления, закрыть процесс и удалить лог


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