Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


krasavchik0, Ваша задача не очень понятна, но внесение вероятности - угарная идея, которая скорее всего приведёт к головной боли . Попробую предложить нечто более предсказуемое.

1. В идеале, как я понял, все компьютеры должны обновиться за 10 дней (10%*10дней=100%), то есть каждый компьютер должен обновиться раз в 10 дней (в идеале).
2. Каждый компьютер имеет IP, последняя цифра которого меняется от 0 до 9
3. Каждый день характеризуется датой, вторая цифра в значении дня меняется от 0 до 9
Сравним п.2 и п.3, при равенстве цифры дня и цифры IP запустим что надо.
ИМХО, такой процесс более предсказуем.
Код: Выделить весь код
@Echo Off
CLS

Call :IPping "LastIP"
Call :DaySecond "Day2"

If "%LastIP%"=="%Day2%"  (
	Echo: Запускаем синхренезацию :) 
) Else (
	Echo Для этого компа "%LastIP%" сегодня "%Day2%" ничего не запускаем
)
GoTo :Eof

:IPping 
	Set "%~1="
	FOR /F "tokens=2 delims=[]" %%b in ('ping -4 -n 1 %ComputerName%') Do If Not "%%a"=="" (set _IP=%%b &GoTo :Continue)
	GoTo :Eof
	:Continue
	Set "_IP=%_IP: =%"
	Set "%~1=%_IP:~-1%"
GoTo :Eof

:DaySecond
	Set "%~1=%Date:~1,1%
GoTo :Eof
Понятно, это не идеал: кто-то попадёт раз в месяц на выходной, кому-то повезёт 31 и 1 числа.
Сколько машин должны сделать копии? Сколько машин одновременно могут, на Ваш взгляд, это делать? И сколько при этом для них потребуется времени? Как вариант, если компы включаются приблизительно в одно время, делать задержку копирования в часы для групп компов в зависимости от, например, того же IP.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 17-10-2017 в 16:39.


Отправлено: 16:13, 17-10-2017 | #7