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

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

n_i_x 23-08-2010 09:35 1479783

бесконечный цикл выполнения из bat
 
здравствуйте!

Имеется bat файл, который "банит" по мак адресу некоторые ip в локальной сети.

Как можно сделать, так что бы этот файл работал бесконечно, то есть постоянно скрыто выполнял свои команды с 1 по x ??

sLiDeR-X 23-08-2010 10:02 1479798

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

n_i_x 23-08-2010 10:06 1479801

всё отлично работает спасибо!!!! со скрытием решил проблему через hidcon.exe

pedrosoft 21-06-2020 15:31 2925785

Добрый день!

А как то можно часть кода выполнять в цикле, а часть вне цикла? Например каждую минуту создавать файл:
Код:

: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


alpap 21-06-2020 16:43 2925800

Код:

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

alpap спасибо, могли бы мне помочь чуть разобраться куда мне вставить свою часть кода:
Код:

cd /d D:\server\
start /wait StopServer.exe

timeout /t 4

del /f /q Z:\temp\file.lock

logoff


alpap 22-06-2020 21:36 2925935

в любое место после 2-й строки, но это [timeout /t 4] придется убрать, время определяется тут: ping -n 3 для всех команд или вернее будет функции.
И вообще непонятно использование start /wait и timeout, какой смысл в этом, делайте удаление по отсутствию ошибки после запуска чего-то, вернее будет - не?

pedrosoft 23-06-2020 13:23 2925993

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

Так вообще возможно сделать? Спасибо за помощь!

alpap 23-06-2020 21:20 2926057

Цитата:

Цитата pedrosoft
Так вообще возможно сделать? »

я уже пояснял, в bat команды выполняются по порядку и по мере поступления, т.е. все следующие команды будут выполнены после
Цитата:

Цитата pedrosoft
созданию файла каждую минуту »

т.е. через минуту, поэтому это будет единым кодом который выполняет все команды внутри раз в минуту. И все это будет работать если этот bat будет постоянно запущен, естественно. Вот если bat будет запускать что-то извне, например планировщик, то с одной стороны все равно запуск, допустим тоже каждую минуту, но сделав несколько заданий можно сделать несколько нужных временных диапазонов, так меньше нагрузка на процессор чем если делать несколько bat с разным запуском и все держать в запущенном виде.

Iska 24-06-2020 00:13 2926086

Угу. Или переходить на WSH+Wbem или на PoSH.


Время: 22:12.

Время: 22:12.
© OSzone.net 2001-