Автообновление ReplIn

Для обновления самого себя ReplIn.exe создает uplman.cmd файл:

timeout 20
cscript //nologo sleep.js 20000
move /Y Repl\Temp\ReplIn.exe Repl\ReplIn.exe
timeout 20
cscript //nologo sleep.js 20000
ReplIn.exe Agbis /RUN
del sleep.js
del uplman.cmd

После запуска этого файла происходит таймаут 20 секунд, потом таймаут другим способом (бывает один из них на разных системах не срабатывает). Таймаут нужен для ожидания, что ReplIn.exe файл уже точно завершил работу. Потом перенос файла из Temp (именно перенос) и дальше таймаут и запуск с теми же параметрами. В конце чистка сервисных файлов обновления.

Автообновление ReplOut

Для обновления самого себя ReplOut.exe создает uplman.cmd файл:

timeout 20
cscript //nologo sleep.js 20000
move /Y Repl\Temp\ReplOut.exe Repl\ReplOut.exe
timeout 20
cscript //nologo sleep.js 20000
ReplOut.exe Agbis /RUN
del sleep.js
del uplman.cmd

После запуска этого файла происходит аналогичный процесс, который указан для ReplIn.

Почему автообновление могло не сработать
  • Таймаута не было ни по одному способу, тогда move не смог выполниться
  • Антивирус мог проверять новый .exe дольше 20/40 секунд
  • Службе не хватило прав(если задача в xStarter и xStarter запускается как служба) на замену файла
  • Было прервано выполнение файла (тогда до удаления файла uplman.cmd не дошло и он должен остаться)