Задать вопрос
@Blackster

Почему BAT скрипт работает корректно только после второго запуска?

Здравствуйте! Я написал простой скрипт, который в цикле должен запускать нужный exe файл с параметром, с паузой между каждым запуском.

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION
SET PROGRAM_PATH=D:\Program Files (x86)\Notepad++\notepad++.exe
SET LAUNCH_TIMEOUT=3
set mList=1.txt 2.txt 3.txt

(for %%m in (%mList%) do (
	echo %%m launch
	"!PROGRAM_PATH!" %%m
	echo %%m launched
	TIMEOUT /T "!LAUNCH_TIMEOUT!"
))

pause


Проблема в том, что при первом запуске этого скрипта открывается только 1й файл, и ВСЁ, скрипт ожидает непонятно чего, просто висит, не обрабатывается следующая после запуска строчка кода echo %%m launched. Если же закрыть его и запустить повторно, то открываются все 3 файла. Последующие запуски происходят тоже корректно.

Этот скрипт я ставлю в автозагрузку винды, и после перезагрузки компа он как раз и не срабатывает как положено. А при повторном запуске срабатывает. При ручном запуске всё точно также, как и при автозагрузке. Проблема не только с запуском notepad++, скрипт при запуске любой программы так себя ведет.

Подскажите, в чем моя ошибка? Спасибо!
  • Вопрос задан
  • 1215 просмотров
Подписаться 2 Простой 11 комментариев
Ответ пользователя АртемЪ К ответам на вопрос (2)
Jump
@Jump
Системный администратор со стажем.
Вероятнее всего проблема в антивирусе - он может блокировать при первом запуске и пропускать при втором.
Ответ написан