Перезапустите ту же программу .EXE после завершения предыдущей.

488
4 Leave Cover

У меня есть эта программа PaymentAPI.exe, которую нужно запустить, затем отдохнуть в течение 5 минут, а затем продолжить новый запуск экземпляра. Крайне важно, чтобы одновременно работало не более 1 экземпляра. Продолжительность работы может зависеть от сетевого подключения и данных внутри.

Например, он может работать в течение 5 или 30 минут. Однако независимо от того, как долго он выполняется, когда он завершится, он будет ждать 5 минут, а затем снова будет работать. Как мне настроить такие настройки в планировщике заданий? Спасибо.

0
Планировщик заданий не подходит для этого. Это будет просто запускать приложения в определенный период phuclv 6 лет назад 0

1 ответ на вопрос

-1
harrymc

Используйте пакетный скрипт ( .bat) следующим образом:

:loop PaymentAPI.exe timeout 300 goto loop 

Он зацикливается навсегда, ожидая 300 секунд между запусками.

Изменить : Этот ультра-простой сценарий недооценивается, очевидно, из-за отсутствия понимания того, что он делает.

Он основан на том факте, что скрипт, запускающий программу, приостанавливается до тех пор, пока эта программа выполняется. Чтобы выполнить параллельно и не вызывать паузу в скрипте, программа должна быть запущена командой Start, а не простым вызовом, и затем откроется новое собственное окно (графическое или консольное). Это то, на чем основан вышеописанный скрипт, для достижения именно того, что требует афиша.

@Albin: оба расширения эквивалентны. Я добавил объяснение. harrymc 6 лет назад 0
cmd является предпочтительным суффиксом для Win2K и выше, кроме того, bat и cmd не эквивалентны Albin 6 лет назад 0
и спасибо за добавление объяснения! Albin 6 лет назад 0
С помощью этого скрипта программа всегда открыта и не закроется? Или он закроется, когда предыдущий экземпляр завершится, и снова откроется в следующем? 4 Leave Cover 6 лет назад 0
@ 4LeaveCover: цикл: программа запускается, работает столько времени, сколько нужно, останавливается, время ожидания составляет 300 секунд, цикл перезапускается. harrymc 6 лет назад 0
Вам нужно добавить `/ nobreak` в команду` timeout`, иначе, если пользователь нажмет любую клавишу, пакетный файл не будет ждать 300 секунд. DavidPostill 6 лет назад 0
`bat` и` cmd` [не совпадают] (https://stackoverflow.com/questions/148968/windows-batch-files-bat-vs-cmd) DavidPostill 6 лет назад 1
@DavidPostill: небольшие различия cmd / bat не имеют смысла в контексте поста. `/ nobreak` также не имеет смысла в контексте планировщика заданий, указанного в посте. harrymc 6 лет назад 1
Пойдем, ребята, прекрати опускать рабочий раствор по косметическим причинам. Понижающие голоса предназначены для ответов, которые не решают проблему, а не для одного слова, с которым вы не согласны в ответе или комментариях. Такие отрицательные отзывы служат только для того, чтобы отпугнуть автора от реального решения его проблемы. harrymc 6 лет назад 0