бесконечный цикл выполнения из bat
здравствуйте!
Имеется bat файл, который "банит" по мак адресу некоторые ip в локальной сети.
Как можно сделать, так что бы этот файл работал бесконечно, то есть постоянно скрыто выполнял свои команды с 1 по x ??
|
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
|
Добрый день!
А как то можно часть кода выполнять в цикле, а часть вне цикла? Например каждую минуту создавать файл:
Код:
: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
|
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, какой смысл в этом, делайте удаление по отсутствию ошибки после запуска чего-то, вернее будет - не?
|
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
Так вообще возможно сделать? Спасибо за помощь!
|
Цитата:
Цитата pedrosoft
Так вообще возможно сделать? »
|
я уже пояснял, в bat команды выполняются по порядку и по мере поступления, т.е. все следующие команды будут выполнены после
Цитата:
Цитата pedrosoft
созданию файла каждую минуту »
|
т.е. через минуту, поэтому это будет единым кодом который выполняет все команды внутри раз в минуту. И все это будет работать если этот bat будет постоянно запущен, естественно. Вот если bat будет запускать что-то извне, например планировщик, то с одной стороны все равно запуск, допустим тоже каждую минуту, но сделав несколько заданий можно сделать несколько нужных временных диапазонов, так меньше нагрузка на процессор чем если делать несколько bat с разным запуском и все держать в запущенном виде.
|
Угу. Или переходить на WSH+Wbem или на PoSH.
|
Время: 22:12.
© OSzone.net 2001-