Показать полную графическую версию : [решено] бесконечный цикл выполнения из bat
здравствуйте!
Имеется bat файл, который "банит" по мак адресу некоторые ip в локальной сети.
Как можно сделать, так что бы этот файл работал бесконечно, то есть постоянно скрыто выполнял свои команды с 1 по x ??
sLiDeR-X
23-08-2010, 10:02
n_i_x, структура:
@echo off
chcp 866 >nul
set time=5
:loop
echo Здесь вставьте ваши команды. Повтор каждые %time% секунд.
ping 127.0.0.1 -n %time% >nul
Goto :loop
Здесь 5 - это 5 секунд паузы
Если нужно скрыто запускать, то используйте программу hidcon. Например так:
hidcon ban.cmd
всё отлично работает спасибо!!!! со скрытием решил проблему через hidcon.exe
pedrosoft
21-06-2020, 15:31
Добрый день!
А как то можно часть кода выполнять в цикле, а часть вне цикла? Например каждую минуту создавать файл:
:loop
echo %computername% > "Z:\temp\file.lock"
timeout /t 60
goto loop
, но при этом выполнять другие команды:
cd /d D:\server\
start /wait StopServer.exe
timeout /t 4
del /f /q Z:\temp\file.lock
logoff
@echo off
cmd /c for /l %%i in () do @^>nul ping -n 3 127.0.0.1^&^
rem:^>"file.txt"^& echo Создан "file.txt"^&^
echo ------------------^&^
echo Hello!^&^
echo ------------------^&^
^(for %%a in (1 2) do @echo %%a^)^&^
echo:
pause
pedrosoft
22-06-2020, 14:45
alpap спасибо, могли бы мне помочь чуть разобраться куда мне вставить свою часть кода:
cd /d D:\server\
start /wait StopServer.exe
timeout /t 4
del /f /q Z:\temp\file.lock
logoff
в любое место после 2-й строки, но это [timeout /t 4] придется убрать, время определяется тут: ping -n 3 для всех команд или вернее будет функции.
И вообще непонятно использование start /wait и timeout, какой смысл в этом, делайте удаление по отсутствию ошибки после запуска чего-то, вернее будет - не?
pedrosoft
23-06-2020, 13:23
alpap похоже это не работает так как мне нужно, сейчас опишу подробнее. Мне нужно, чтобы файл создавался циклически вне зависимости от других команд. Например вначале скрипта идет код по созданию файла каждую минуту, а далее я выполняю свои команды:
@rem
@rem тут какой то хитрый алгоритм, который каждую минуту создает файл Z:\temp\file.lock и не влияет на работу кода ниже
@rem
@rem запускаю службу
net start Service
@rem жду чтобы служба подцепила оборудование
timeout /t 4
@rem запускаю приложение и жду окончание его работы
start /wait Desktop.exe
@rem после окончания работы приложения останавливаю службу, удаляю файл и выхожу из системы
net stop Service
del /f /q Z:\temp\file.lock
logoff
Так вообще возможно сделать? Спасибо за помощь!
Так вообще возможно сделать? »
я уже пояснял, в bat команды выполняются по порядку и по мере поступления, т.е. все следующие команды будут выполнены после
созданию файла каждую минуту »
т.е. через минуту, поэтому это будет единым кодом который выполняет все команды внутри раз в минуту. И все это будет работать если этот bat будет постоянно запущен, естественно. Вот если bat будет запускать что-то извне, например планировщик, то с одной стороны все равно запуск, допустим тоже каждую минуту, но сделав несколько заданий можно сделать несколько нужных временных диапазонов, так меньше нагрузка на процессор чем если делать несколько bat с разным запуском и все держать в запущенном виде.
Угу. Или переходить на WSH+Wbem или на PoSH.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.