Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сделать задержку, размер которой определить по названию файла (http://forum.oszone.net/showthread.php?t=335611)

Alexander_88 06-07-2018 02:47 2820800

Сделать задержку, размер которой определить по названию файла
 
Здравствуйте, вроде знаю как делать простую задержку, но вот как сделать задержку, длительность которой всегда нужно делать разную...
Ее размер в минутах показывает название файла Sleep - n (где n цифра)
Например имя файла "Sleep - 5"
Это значит, что нужно сделать задержку в 5 минут..
После окончания задержки нужно удалить файл с именем "block" и завершить выполнение скрипта.
В названии файлов нету расширений.

Iska 06-07-2018 08:54 2820812

Код:

@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 2820833

Спасибо, все работает, даже таймер обратного отчета есть :)

Iska 06-07-2018 12:48 2820835

Цитата:

Цитата Alexander_88
…даже таймер обратного отчета есть »

Ну, за это спасибо следует сказать Microsoft Corp., я тут не при чём :).

Alexander_88 08-07-2018 17:59 2821038

ой ой... протестил на win server.. но надо то чтобы на ХР работало, а там видимо нету timeout.exe программы)

alpap 08-07-2018 18:14 2821043

Alexander_88,
замените ее на:
Код:

:: Задержка на кол-во сек-1 (в данном случае на 15сек)
>nul ping -n 16 127.0.0.1


Iska 08-07-2018 18:17 2821044

Цитата:

Цитата Alexander_88
но надо то чтобы на ХР работало, а там видимо нету 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 2821052

Спасибо, работает на XP :)


Время: 08:10.

Время: 08:10.
© OSzone.net 2001-