Этот bach-файл должен делать то, что вы хотите (не уверен, что он будет работать во всех версиях Windows).
Он использует сценарий Andriy M , но добавляет запрашиваемую вами функциональность.
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET dirname=F:\Files
:Begin
CLS
ECHO %TIME%
FOR /R "%dirname%\" %%a IN (*.zip) DO CALL :process1 %%a
ping.exe localhost -n 11 >nul
GOTO Begin
:process1
IF %~z1 GTR 0 "%1"
GOTO :EOF
ping.exe localhost -n 11 >nul
- это просто задержка, так что вы можете оставить пакетный файл включенным, и он будет повторяться примерно каждые 10 секунд, как определено с помощью -n 11
, что приводит к 11 пингам локального хоста с интервалами в 1 секунду с первым один успешный уже через несколько микросекунд.
Я добавил командную строку ECHO %TIME%
, чтобы было видно, что она все еще работает, поскольку значение этого времени обновляется при каждой итерации цикла.
Недостаток этого пакетного решения. Если ZIP-файл все еще находится в каталоге при следующем запуске цикла, он снова открывает ZIP-файл.