a139st Опубликовано 6 ноября, 2008 Жалоба Поделиться Опубликовано 6 ноября, 2008 Всё работает!!! Большое Спасибо!!! Я так понял команда rem нужена для того чтобы строка не выполнялась, а она написана для пояснения. И с логом всё нормально, можно как угодно редактирвать. Начал потихонечку учить ( пост Тролль-я) Maikll Как изменить, чтобы можно было контролировать не один а два или больше компьютеров. Если пинговать к примеру 2 разных IP, и чтобы батник составлял соответственно 2 csv файла с разными именами какая та часть программы должна повторяться для контроля второго IP Если не затруднит напишите пожалуйста. (было бы неплохо если бы выделили цветом что именно должно повториться) Програма, которую Вы написали мне хватает, Спасибо! А это моя просьба ради изучения что и как работает, интересно стало. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 6 ноября, 2008 Жалоба Поделиться Опубликовано 6 ноября, 2008 какая та часть программы должна повторяться для контроля второго IP собственно, вся :D ну, за исключением того, что придется расширить границы цикла. честно говоря, я не вижу смысла вбивать проверку нескольких адресов непосредственно в сам код. Во-первых увеличится его объем (2 адреса - вдвое, 3 адреса - втрое и т.д.) Во-вторых, изменятся и усложнятся условия цикла, что тоже не очень здорово. В-третьих, не забываем, что основная задача программы - переодически проверять хост а в случае проверки нескольких адресов время между проверками неминуемо увеличится. Смысл тогда ведения лога, если его точность плюс-минус квадратный километр? Проще и логичнее создать универсальный скрипт, который будет получать адрес для проверки из параметров запуска. Т.е. запуск будет не просто по имени, а имя батника + через пробел адрес для проверки (я в таких случаях делаю ярлык к батнику и в поле Обьект прописываю необходимые параметры, это удобнее, чем каждый раз вводить) Код в этом случае изменится совсем чуть-чуть: @echo offset mem=0set ip=%1 :Loopsleep число_секунд задержки_между_проверкамиping -n 2 %ip% | find /i "(100"if %errorlevel% == 1 goto Loop2if %mem% == 0 (set mem=1) else (goto Loop)for /f "tokens=1,2,3 delims=." %%i in ('date/t') do (set mem1=%%i.%%j.%%k)for /f "tokens=1,2 delims=:" %%i in ('time/t') do (set mem2=%%i:%%j)echo %mem1%,%mem2%,The network is inaccessible.>>"log-%ip:~0,-1%.csv"goto Loop:Loop2if %mem% == 1 (set mem=0) else (goto Loop)for /f "tokens=1,2,3 delims=." %%i in ('date/t') do (set mem1=%%i.%%j.%%k)for /f "tokens=1,2 delims=:" %%i in ('time/t') do (set mem2=%%i:%%j)echo %mem1%,%mem2%,The network is accessible.>>"log-%ip:~0,-1%.csv"goto Loop файл лога в этом случае будет иметь вид log-адрес_который_проверяли.csv Если к примеру понадобится проверять 2 адреса одновременно, то кто запрещает запустить 2 экземпляра программы с разными параметрами-адресами? :dontgetit: Ссылка на комментарий Поделиться на другие сайты Поделиться
a139st Опубликовано 7 ноября, 2008 Жалоба Поделиться Опубликовано 7 ноября, 2008 :bye1: Что то не получаеться Делал следующим образом: созал ярлык на рабочем столе, указал размещение объекта "C:\test 10.0.10.10.bat", указал время 60 (секунд) Запустил, так программа никаких файлов не создала. Думаю что то не так делаю, но пока не понял что не так. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 7 ноября, 2008 Жалоба Поделиться Опубликовано 7 ноября, 2008 (изменено) параметр должен быть после имени батника а не внутри него. То есть будет так: C:\test.bat 10.0.10.10 Изменено 7 ноября, 2008 пользователем Maikll Ссылка на комментарий Поделиться на другие сайты Поделиться
a139st Опубликовано 10 ноября, 2008 Жалоба Поделиться Опубликовано 10 ноября, 2008 Maikll ! Спасибо ! Всё работает ещё просьба, не смогли бы вы порекомендовать какую ни будь программу которая могла так же выполнять мониторинг за удалёнными компютерами достаточно просто пинговать через определённые промежутки времени, компьютер включён или нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 10 ноября, 2008 Жалоба Поделиться Опубликовано 10 ноября, 2008 a139st: а почему не хотите попробовать написать такую программу самому? Раз уж мы начали разговор о всяческих батниках, то это будет неплохой тренировкой, ведь вы решили это дело изучать, не так ли? ;) P/S. готовых решений такого рода во множестве: попробуйте в любом поисковике забить название MultiPing Grapher Ссылка на комментарий Поделиться на другие сайты Поделиться
a139st Опубликовано 12 ноября, 2008 Жалоба Поделиться Опубликовано 12 ноября, 2008 До недавного времени я наверное от силы десяток команд набирал в командной строке, просто не догадывался о возможностях. Конечно начал учить, но для меня пока слишком много информации. Ещё мешает учёбе слабые знания англиского языка. Эта моя просьба по поводу программы; не для меня нужно было, а просто попросили, когда увидели моё увлечение. Ссылка на комментарий Поделиться на другие сайты Поделиться
morituri Опубликовано 30 ноября, 2008 Жалоба Поделиться Опубликовано 30 ноября, 2008 Уважаемые господа! Возник очень волнующий меня вопрос о написании некой команды в cmd для создания пользователя в W2K, при этом с группами и паролями вопросов не возникло, но... есть замечательная вкладка - Remote Access Permision - где по умолчанию при создании юзера ставится "галка" что вход контролируется политикой удаленного доступа и в этом роде... А необходимо поставить галку на Allow Access... Как мона это сделать - есть ли может прога специальная. Факт в том, что за день создается много пользователей и заходить в каждого и ставить эту галку ручками уже надоедает... :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 2 декабря, 2008 Жалоба Поделиться Опубликовано 2 декабря, 2008 morituri: возможно, вам поможет вот такой скрипт хотя...не проще ли настроить соответствующим образом политику удаленного доступа? Ссылка на комментарий Поделиться на другие сайты Поделиться
Bednyazhka Опубликовано 3 декабря, 2008 Жалоба Поделиться Опубликовано 3 декабря, 2008 ПАМАГИТЕ... нужно переименовать группу файлов с маской a1f??897.x4a в s0182755.0??, то есть выделить из имени исходного файла 4, 5 символ и приляпать их в расширение имени полученного файла . Организовать надо в батнике.... вот.. спасибо.. Ссылка на комментарий Поделиться на другие сайты Поделиться
svx59 Опубликовано 12 декабря, 2008 Жалоба Поделиться Опубликовано 12 декабря, 2008 Всем привет. Не поможете. Проблемка такая нужно сделать батник чтобы он пинговал сервера и если он вдруг не пингуется записывал в лог какой сервер не пингуется. Серваков 13 шт. приблизительно схема такая пинг ТТ1 пинг ТТ2 пинг ТТ3 пинг ТТ4 пинг ТТ5 пинг ТТ6 и тд.. и допустим ТТ4 не пингуется,создается файлик ERORR где примерно будет написано TT4 no ping или что то в этом роде. Как это сделать я не понимаю :) Может кто помочь ??? И забыл :bye1: если допустим ТТ5 тоже не пингуется он дописал в этот же файлик Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 12 декабря, 2008 Жалоба Поделиться Опубликовано 12 декабря, 2008 (изменено) svx59: буквально на предыдущей странице нечто подобное обсуждалось и выкладывались примеры батников. Можно взять что-то оттуда и под себя переделать. Навскидку можно что-то вроде такого использовать echo offfor /f "tokens=*" %%a in ('more^<ip.txt') do call :_replace %%a :_replaceset i=%*ping %i% | find /i "(100"if %errorlevel% == 1 goto eofecho %i% no ping.>>ERORR.txtgoto eof где ip.txt - файл, содержащий список проверяемых компов по ip-адресам или именам (каждое имя пишется в отдельной строке) Изменено 12 декабря, 2008 пользователем Maikll Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 12 декабря, 2008 Жалоба Поделиться Опубликовано 12 декабря, 2008 (изменено) Bednyazhka: По вашим условиям текст батника будет вот таким echo offFOR %%a IN (*.x4a) DO call :_replace %%agoto eof:_replaceset i=%*ren %i% %i:~0,-2%%i:~3,2%goto eof Изменено 12 декабря, 2008 пользователем Maikll Ссылка на комментарий Поделиться на другие сайты Поделиться
svx59 Опубликовано 13 декабря, 2008 Жалоба Поделиться Опубликовано 13 декабря, 2008 echo offfor /f "tokens=*" %%a in ('more^<ip.txt') do call :_replace %%a :_replaceset i=%*ping %i% | find /i "(100"if %errorlevel% == 1 goto eofecho %i% no ping.>>ERORR.txtgoto eof где ip.txt - файл, содержащий список проверяемых компов по ip-адресам или именам (каждое имя пишется в отдельной строке) Косяк :bye1: создал ip.txt в писал список компов на проверку при запуске батника пишет "Не удатся найти указанную метку пакетного файла" Если можешь подробнее объяснить. Допустим в ip.txt список сделал такой (тест) yandex.ru rambler.ru ffggjjjssl.su (такого нет поэтому должен записать в error.txt) fishki.net Помоги очень нужно у нас просто чел заболел,а я не успеваю и админить и батники делать и тд.. помогите беному админу :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 13 декабря, 2008 Жалоба Поделиться Опубликовано 13 декабря, 2008 svx59: Поправил. echo offfor /f "tokens=*" %%a in ('more^<ip.txt') do call :_replace %%agoto eof:_replaceset i=%*ping %i% >nulif %errorlevel% == 0 goto eofecho %i% no ping.>>ERORR.txt:eof Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 16 декабря, 2008 Жалоба Поделиться Опубликовано 16 декабря, 2008 (изменено) Помогите написать батник для перезагрузки модема. Суть проблемы: На работе на шлюзе периодически виснет ADSL-модем D-Link DSL-2520U. В таких случаях я обычно захожу на модем удалённо через telnet и перезагружаю его. Т.е. он не то чтобы виснет - пропадает инет. Проблема в том что предсказать время невозможно, поэтому бывает очень неприятно если модем повиснет в 7.00, а рабочий день у меня с 9.00, или если модем повиснет в субботу после обеда, а в субботу работаю я до обеда. Поэтому нужно чтобы батник: 1. Проверял пингами наличие интернета. 2. В случае если инета нет - логинился бы через телнет на модем и перезагружал бы его. Такое вообще реально? Изменено 16 декабря, 2008 пользователем Darth Emil Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 16 декабря, 2008 Жалоба Поделиться Опубликовано 16 декабря, 2008 (изменено) Darth Emil: стандартными средствами telnet не получится, она не умеет указывать передаваемые команды в качестве параметров. Поэтому будем использовать TSE - Telnet Script Executor. За основу батника возьмем уже выкладывавшийся здесь код для перезапуска dial-up соединения и получим @echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looptse.exe < reboot > log.txtgoto Loop где reboot - файл, содержащий сценарий команд для TSE Готовый батник, файл команд и сам tse.exe с описание в аттаче. В качестве команды перезагрузки я поставил "adsl start". Изменено 16 декабря, 2008 пользователем Maikll Ссылка на комментарий Поделиться на другие сайты Поделиться
Bednyazhka Опубликовано 16 декабря, 2008 Жалоба Поделиться Опубликовано 16 декабря, 2008 Спасибо, Maikll, работает !!!! ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 17 декабря, 2008 Жалоба Поделиться Опубликовано 17 декабря, 2008 Maikll: т.е. я понял так: 1. Батник будет постоянно пинговать ya.ru. Как это скажется на скорости интернета, учитывая что у нас всего 128 кбит/сек? 2. Нужно чтобы телнет логинился на модем под определённым логином и паролем. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 17 декабря, 2008 Жалоба Поделиться Опубликовано 17 декабря, 2008 (изменено) 1. Батник будет постоянно пинговать ya.ru. Как это скажется на скорости интернета, учитывая что у нас всего 128 кбит/сек? Ну можно и снизить нагрузку на сеть. Тут 2 варианта: - либо ты будешь запускать батник к примеру планировщиком с нужной тебе частотой - тогда цикл вообще убираем - либо вставляем в цикл задержку между проверками на сколько скажешь 2. Нужно чтобы телнет логинился на модем под определённым логином и паролем. открой блокнотом файлик reboot без расширения из аттача, там в комментариях все указано, где логин пишется, где пароль, где команда. Поменяй на нужные тебе и сохрани. Изменено 17 декабря, 2008 пользователем Maikll Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 17 декабря, 2008 Жалоба Поделиться Опубликовано 17 декабря, 2008 Maikll: - либо ты будешь запускать батник к примеру планировщиком с нужной тебе частотой - тогда цикл вообще убираем- либо вставляем в цикл задержку между проверками на сколько скажешь Пример обоих вариантов можно увидеть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 17 декабря, 2008 Жалоба Поделиться Опубликовано 17 декабря, 2008 Darth Emil: можно, конечно. в первом случае просто убираем цикл @echo offping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looptse.exe < reboot > log.txt для запуска делаем новое задание во встроенном планировщике. Плюсом будет то, что окошко батника в таком случае не появляется на экране. во втором используем инструмент sleep для паузы @echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looptse.exe < reboot > log.txtsleep число-секунд-задержкиgoto Loop утилиту sleep можно взять в 375 посте сей темы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darth Emil Опубликовано 18 декабря, 2008 Жалоба Поделиться Опубликовано 18 декабря, 2008 Похоже я тупой :) Для теста запустил батник с командой: tse.exe < reboot > log.txt В файле reboot написал это: ;Вписываете адрес вашего ротуера вместо 192.168.1.1 если он другойopen 192.168.1.1 waitfor "Login:" ; ;В следующей строчке пишите ваш логин вместо "admin" transmit "admin^M" waitfor "Password:" ; ;В следующей строчке пишите ваш пароль вместо "admin" transmit "мой_пароль^M" ; ;В следующей строчке указываете знак готовности shell установленного на роутере waitfor ">" ; ;В следующей строчке указываете команду перезагрузки роутера transmit "reboot^M" quit Но не срабатывает. Что не так? И почему вот что:1. В конце команд стоит ^M? 2. Сьедены первые буквы в assword и ogin 3. Приглашение не # а > Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 18 декабря, 2008 Жалоба Поделиться Опубликовано 18 декабря, 2008 1. В конце команд стоит ^M? Так указано в описании команды transmit, см tse.txt 2. Сьедены первые буквы в assword и ogin я был не уверен, как будет на выходе железки (к примеру может Password а может password ), поэтому постарался сделать универсально, чтобы сработало в любом случае. По факту это не должно иметь никакого значения. 3. Приглашение не # а > :blush2: в моем файле было waitfor "#" сейчас попробовать не могу, но на моем DSL-2540U с указанными в файле настройками работало. Может в твоей железке нужно другую команду послать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Bednyazhka Опубликовано 24 декабря, 2008 Жалоба Поделиться Опубликовано 24 декабря, 2008 Люди добрые подскажите что делаю не так! Вот кусок кода батника который отказывается корректно отрабатывать for %%a IN ( trx*.*) DO call :tmp %%~ta :tmp cls SET F_DATE = %2 SET F_NAME = %~1 echo %2 %~1 >>file.tmp for /f %%v in ( file.tmp) do call :createfolder %%v :createfolder set d = %1 rem день set dd=%1:~0,2% rem месяц set dm=%1:~3,2% rem god set dg=%1:~6,4% md e:\bink\batch\%dg%\%dm%\%dd% move e:\bink\batch\trx%dd%*.* e:\bink\batch\%dg%\%dm%\%dd%\*.* exit /b а надо то всего навсего мне отсортировать группу файлов, узнать когда они были созданы и переложить в папку в названии которой содержится дата создания файла Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения