Показать полную графическую версию : [решено] Сделать задержку, размер которой определить по названию файла
Alexander_88
06-07-2018, 02:47
Здравствуйте, вроде знаю как делать простую задержку, но вот как сделать задержку, длительность которой всегда нужно делать разную...
Ее размер в минутах показывает название файла Sleep - n (где n цифра)
Например имя файла "Sleep - 5"
Это значит, что нужно сделать задержку в 5 минут..
После окончания задержки нужно удалить файл с именем "block" и завершить выполнение скрипта.
В названии файлов нету расширений.
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=2 delims=- " %%i in (`2^>nul dir /b /a:-d "%~dp0Sleep - *."`) do set /a iDelay = %%i * 60
if defined iDelay (
timeout.exe /t %iDelay% /nobreak
del "block."
)
endlocal
exit /b 0
Alexander_88
06-07-2018, 12:22
Спасибо, все работает, даже таймер обратного отчета есть :)
…даже таймер обратного отчета есть »
Ну, за это спасибо следует сказать Microsoft Corp., я тут не при чём :).
Alexander_88
08-07-2018, 17:59
ой ой... протестил на win server.. но надо то чтобы на ХР работало, а там видимо нету timeout.exe программы)
Alexander_88,
замените ее на:
:: Задержка на кол-во сек-1 (в данном случае на 15сек)
>nul ping -n 16 127.0.0.1
но надо то чтобы на ХР работало, а там видимо нету timeout.exe программы »
Нету.
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=2 delims=- " %%i in (`2^>nul dir /b /a:-d "%~dp0Sleep - *."`) do set /a iDelay = %%i * 60 - 1
if defined iDelay (
>nul ping.exe -n %iDelay% 127.0.0.1
del "block."
)
endlocal
exit /b 0
Alexander_88
08-07-2018, 19:11
Спасибо, работает на XP :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.