Боюсь, что решение не доступно только из пакетного файла. Варианты, которые вы проходите, задумываясь вне коробки и реализуя программу, выполняющую эту работу.
Например, хорошая реализация может использовать метод app.activate, который позволит вам проверить, есть ли окно с определенным именем «живое».
Если вы выберете по этому пути, то решение было бы создать файл VBS под названием «waitForAll.vbs» (к примеру) и давать что-то вроде этого:
Dim objShell
dim found
dim nCount
Set objShell = CreateObject("WScript.Shell")
found = true
nCount = 100 ' to avoid hangings
do while found and nCount > 0
found = objShell.appActivate("CAPTION OF YOUR WINRAR WINDOWS")
wscript.sleep 5 * 1000 ' sleep for five seconds
nCount = nCount - 1
loop ' found
if not found then
' launch whatever
end if ' not found
И вместо этого начинают " "d: \ вам нужно вставить вызов этой программе waitForAll.vbs: программа будет искать все окна в пользовательском пространстве, которые называются похожими на те, что у winrar: когда они не найдены, это будет начинай все, что хочешь.
При необходимости, если окно winrar зависает (с всплывающим сообщением или что-то в этом роде), эта программа в конечном итоге заканчивается с помощью счетчика nCount.
Это прекрасно работает, спасибо большое ... но что такое -6? вы можете объяснить, пожалуйста ... и это означает, что я должен написать код, подобный этому ping localhost -6 (5)> nul ИЛИ ping localhost -6> nul .. THANK YOU – Hauari
Я отредактирую свой ответ и объясню смысл этого. – MichaelS
Готово. Последнее замечание: если вы хотите подождать X секунд, вам нужно будет выполнить ping localhost -n X + 1'. – MichaelS