HaK1R
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору ScreamWolf Цитата: И еще вопрос... 1.bat создает и запускает 2.bat. Вопрос: как отследить процесс (он ведь CMD.EXE а таких может быть несколько) дабы убить его потом (именно 2.bat) так же батником (taskkill /f /im "cmd.exe" - в этом случае он грохнет все имеющиесь CMD.exe в том числе и себя) При попытке просто удалить 2.bat cmd.exe прекращает выполняться и спрашивает о завершение пакетного файла т е нада нажимать Y/N... | а попробуй убивать не по имени процесса а по PID Добавлено: ScreamWolf Цитата: можно ли как-нибудь заставить батник, что-бы он спросил сколько будет серверов для проверки и после этого, в зависимости от указанного количества, спросил имя каждого сервера... | Код: @echo off set /p "NumberOfServers=Сколько серверов?" for /l %%a in (1,1,%NumberOfServers%) do ( set /p "ServerName_%%a=Введите имя %%a-го сервера" ) set ServerName pause 1>nul | Добавлено: William Gates адрес не менять! Код: @echo off setlocal cmd /c wget -c http://www.cmyip.com/ 1>nul 2>&1 for /f "tokens=4" %%i in ('findstr .title.* index.html') do set "ip=%%i" echo %ip% del index.html pause 1>nul | Добавлено: ScreamWolf Цитата: Помогите с батником... Код | А зачем вот это дублировать? Код: set server=server1 set log=%temp%\%server%.scan ping -n 1 %server% >%log% find /i "ttl" "%log%" if %errorlevel%==1 goto offline :%server% set server=server2 set log=%temp%\%server%.scan ping -n 1 %server% >%log% find /i "ttl" "%log%" if %errorlevel%==1 goto offline :%server% set server=server3 set log=%temp%\%server%.scan ping -n 1 %server% >%log% find /i "ttl" "%log%" if %errorlevel%==1 goto offline :%server% set server=server4 set log=%temp%\%server%.scan ping -n 1 %server% >%log% find /i "ttl" "%log%" if %errorlevel%==1 goto offline :%server% set server=server5 set log=%temp%\%server%.scan ping -n 1 %server% >%log% find /i "ttl" "%log%" if %errorlevel%==1 goto offline | ? Я сейчас немного переделаю, не против? :) Добавлено: ScreamWolf вот вариант, с отчетом, исправил ошибки, и недочеты. красным файл отчета Цитата: как-бы сделать так, что бы например если server2 не доступен, то больше одного сообщения не выводилось, но при этом проверка ...и server2... продолжалась | А до какого момента это сообщение не должно выводится иными словами, когда оно будет снова появляться? (в примере при следующем запуске проги) Посмотри то что синем, привильно ли написано, утилита нет, сам не могу проверить, там во втором в конце Е вместо I появилось, не знаю, нормально ли это. И еще в конце было удоление 1.bat - убрал это Код: @echo off set "report=report.txt" set h1=18 set h2=9 set m1=0 set m2=0 set s1=0 set s2=0 set timesleep=30 set /a TimeInSec1=(%h1%*60+%m1%)*60+%s1% set /a TimeInSec2=(%h2%*60+%m2%)*60+%s2% set /a timesleep+=1 set /a MASS=0 set /p "NumberOfServers=Сколько серверов?" for /l %%a in (1,1,%NumberOfServers%) do ( set /p "ServerName_%%a=Введите имя %%a-го сервера" ) (echo %date% %time:~0,8% Запуск проверки) 1>>%report% start hs_message.exe "Server Controll ONLINE - ЗАПУЩЕН c %h2%:%m2%:%s2% до %h1%:%m1%:%s1% таймаут:%timesleep%сек" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK :scan for /f "tokens=1,2,3 delims=:" %%a in ("%time:~0,8%") do (set hh=%%a) & (set mm=%%b) & (set ss=%%c) set /a TimeInSec=(%hh%*60+%mm%)*60+%ss% if %TimeInSec% GEQ %TimeInSec1% (goto :stop) if %TimeInSec% Lss %TimeInSec2% (goto :stop) for /f "tokens=1* delims==" %%h in ('set ServerName') do ( ping -n 1 "%%i" | find /i "TTL=" 1>nul 2>&1 if %errorlevel% 1 ( (echo %date% %time:~0,8% Сервер %%i - недоступен) 1>>%report% call :offline "%%i" ) else ( (echo %date% %time:~0,8% Сервер %%i - доступен) 1>>%report% ) ) ping -n %timesleep% localhost 1>nul 2>&1 goto :scan :offline if MASS==0 (start hs_message.exe "Сервер %~1 не доступен (не виден в сети)! Проверьте сетевые подключения сервера!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" E OK) set /a MASS=1 goto :EOF :stop (echo %date% %time:~0,8% Остановка проверки) 1>>%report% start hs_message.exe "Server Controll ONLINE - ОСТАНОВЛЕН по истечению времени!" "!!!ВНИМАНИЕ!!! *** %date% %time:~0,8%" I OK goto :EOF |
| Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 20:55 09-06-2009 | Исправлено: HaK1R, 22:42 09-06-2009 |
|