Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 8

Автор: mouser
Дата сообщения: 24.04.2010 21:28
нужно убить процесс если он ушел в >80% загрузку CPU
Автор: king_stiven
Дата сообщения: 25.04.2010 08:48
yurkesha

Цитата:
Это те утилиты при попытке доступа к которым выдает:
Цитата:Запрашиваемый раздел не существует.

Поправил шапку
Автор: max200701
Дата сообщения: 25.04.2010 17:19
Всем привет,поскольку я не силён в написании бат файлов,то прошу помощи у знающих людей,требуется следущее:пинговать постоянно какойто сервер,ну например ya.ru и в том случае если пинг не прошёл, выполнить вот этот код

Код: @echo off
:loop
echo -----------------
echo Start program...
ZTnBatch -h 192.168.1.1 -p 1111 -c "sys reboot 0"
if not errorlevel=0 (
                echo Connect Error! Restart...
                goto loop
                )
echo Connect OK! Wait ~180 sec...
sleep 180
Автор: mouser
Дата сообщения: 25.04.2010 21:40
max200701
тебе мой вариант поможет ... принцип такой что если не скачана страница идёт разсоединение с инетом и затем попытка соединится ... так же можно твоё всунуть


Код:
@Echo off
del /q index.html.*
:START
:RASDIAL_start_reconnect
cls
if exist index.html del /Q index.html
wget.exe http://www.google.com --tries=3 --quiet
if %errorlevel% NEQ 0 (goto :RASDIAL_if_else) else (goto :NEXT)


REM ===========================================================================
:RASDIAL_if_else
if exist index.html del /Q index.html
wget.exe http://www.yandex.ru --tries=3 --quiet
if %errorlevel% NEQ 0 (echo.) else (goto :NEXT)
echo.>>Reconnect.log
echo -^>^>^>Disconnect %date%__%time% -------------------------------------->>Reconnect.log
rasdial Fregat /disconnect>>Reconnect.log
:RETRY_reconnect
sleep.exe 5
echo.>>Reconnect.log
echo -^>^>^>Connect %date%__%time% -------------------------------------->>Reconnect.log
rasdial Fregat dmitriy32 xxCME733>>Reconnect.log
if %errorlevel% NEQ 0 (goto :RETRY_reconnect) else (goto :NEXT)
REM ===========================================================================
:NEXT
:sleep
echo sleep 2 min %time:~0,8%>sleep.log & sleep.exe 120
goto :START
Автор: wolf0425
Дата сообщения: 25.04.2010 22:53
подскажите чем отработать прерываемую паузу в несколько секунд?
в смысле - надо написать сообщение, подождать 10 секунд или до нажатия любой кнопки (что раньше), продолжить выполнение батника.
Автор: BUGL
Дата сообщения: 25.04.2010 23:07
приветсвую.
когда исполняется bat есть возможность выделить его содержимое. когда включен режим выделения не выводиться echo. это критично для моего batника.

bat запускаю через другой bat.

как можно отключить режим выделения в bat?
спасибо.
Автор: max200701
Дата сообщения: 25.04.2010 23:47
mouser
Огромное вам спасибо за помощь,но возникли вопросы,и если бы вы на них дали ответы,то для меня многое бы прояснилось.
Сделал под себя так
Код: @Echo off
del /q index.html.*
:START
:RASDIAL_start_reconnect
cls
if exist index.html del /Q index.html
wget.exe http://www.google.com --tries=3 --quiet
if %errorlevel% NEQ 0 (goto :RASDIAL_if_else) else (goto :NEXT)


REM ===========================================================================
:RASDIAL_if_else
if exist index.html del /Q index.html
wget.exe http://www.yandex.ru --tries=3 --quiet
if %errorlevel% NEQ 0 (echo.) else (goto :NEXT)
echo.>>Reconnect.log
echo Start program...
ZTnBatch -h 192.168.1.1 -p 1980 -c "sys reboot 0"
if not errorlevel=0 (
                echo Connect Error! Restart...
                goto loop2
                )
echo Connect OK! Wait ~180 sec...
sleep 180
if %errorlevel% NEQ 0 (goto :RETRY_reconnect) else (goto :NEXT)
REM ===========================================================================
:NEXT
:sleep
echo sleep 20 sek %time:~0,8%>sleep.log & sleep.exe 20
goto :START
Автор: mouser
Дата сообщения: 25.04.2010 23:51
wolf0425
http://wiki.oszone.net/index.php/%D0%9F%D0%B0%D1%83%D0%B7%D0%B0_%D0%B2_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%BC_%D1%84%D0%B0%D0%B9%D0%BB%D0%B5

Добавлено:
BUGL
если речь идёт о том что при зажатии кнопкой мыши текст выделяется ...

не помню как называется строка где кнопка свернуть, развернуть и закрыть нах. .. вообщем нужно правой клавишой мыши нажать и зайти в свойство окна где нужно будет убрать галку с "выделение мышью"
Автор: slech
Дата сообщения: 26.04.2010 08:11
подскажите чем можно из списка

Цитата:

MDaemon-20100424-SMTP-(out).log:Sat 2010-04-24 07:11:10: [6642:4] <-- 554 delivery error: dd This user doesn't have a yahoo.com account (becca9317@yahoo.com) [-5] - mta1059.mail.sp2.yahoo.com
MDaemon-20100424-SMTP-(out).log:Sat 2010-04-24 08:43:23: [9401:3] <-- 554 delivery error: dd This user doesn't have a yahoo.com account (blondegal67@yahoo.com) [-5] - mta112.mail.ac4.yahoo.com
MDaemon-20100424-SMTP-(out).log:Sat 2010-04-24 13:12:41: [7312:1] <-- 554 delivery error: dd Sorry your message to carrie.arnold36@yahoo.com cannot be delivered. This account has been disabled or discontinued [#102]. - mta1078.mail.re4.yahoo.com
MDaemon-20100424-SMTP-(out).log:Sat 2010-04-24 16:13:12: [2703:2] <-- 554 delivery error: dd This user doesn't have a yahoo.com account (clarkeshark@yahoo.com) [-5] - mta113.mail.ac4.yahoo.com
MDaemon-20100424-SMTP-(out).log:Sat 2010-04-24 19:13:01: [7364:1] <-- 554 delivery error: dd Sorry your message to cyleightor@yahoo.com cannot be delivered. This account has been disabled or discontinued [#102]. - mta1040.mail.sp2.yahoo.com

получить список почтовых адресов ?
спасибо.
Автор: wolf0425
Дата сообщения: 26.04.2010 08:17
mouser так которая из описанных там команд делает нужную паузу то?
Я что-то ни одной подходящей не вижу.
Ну кроме варианта писать её на скрипте самому.


Добавлено:
slech так подойдет?

Код: sed -n -r "s/^.+[ \(]([^ @]+@[^ \)]+)[ \)].+$/\1/gp" <log.txt
Автор: yurkesha
Дата сообщения: 26.04.2010 08:32
wolf0425
А через утилиту из ресорс-кита 2003 choice.exe тебя не устроит?
Список выбора можно скрыть и пауза перед выбором по-умолчанию делается...

Добавлено:
Правда пауза может быть только в секундах...
Автор: slech
Дата сообщения: 26.04.2010 09:09
wolf0425
спасибо, буду проверять.
у меня почему-то в Windows XP есть эта утилита, а в Windows 2003 нету.
Это gnu sed ?
Автор: mouser
Дата сообщения: 26.04.2010 09:38
за мой вопрос не забыли ???


Цитата:
нужно убить процесс если он ушел в >80% загрузку CPU

Автор: slech
Дата сообщения: 26.04.2010 10:52

Цитата:
Это gnu sed ?

разобрался, да он.
Автор: wolf0425
Дата сообщения: 26.04.2010 12:18

Цитата:
А через утилиту из ресорс-кита 2003 choice.exe тебя не устроит?
там же только строго определенная кнопка прервет ожидание... и пробелом её не назначить... или я что-то не заметил?
Автор: mouser
Дата сообщения: 26.04.2010 12:51
wolf0425
sleep.exe скачай или

ping -n seconds 127.0.0.1 > nul
где seconds - желаемое число секунд +1.
Автор: king_stiven
Дата сообщения: 26.04.2010 13:03
wolf0425
Из первого батника запустить второй в свёрнутом или скрытом виде, потом в первом
pause > nul
из второго батника после паузы сымулировать нажатие клавиши ентер
Автор: kirik64
Дата сообщения: 26.04.2010 13:36
В папке имеется около 17000 файлов вида 00001.ext, 00002.ext и т.д. Помогите плз скопировать их по 1000 штук в каталоги вида C:\Temp\1 (первая тысяча), C:\Temp\2 (вторая тысяча) и т.д. В последнем каталоге C:\Temp\17 соответственно не тысяча, а остаток.
Автор: king_stiven
Дата сообщения: 26.04.2010 14:15
kirik64

Код: set s=1
set "way=C:\Temp\"
for /f "usebackq tokens=*" %%d in (`dir *.ext /o /b /a:-d`) do (
set name=%%d
set /a sum+=1
call :wer
)
)
goto :eof
:wer
md "%way%%s%" 1> nul 2> nul
copy "%name%" "%way%%s%" > nul
if "%sum%"=="1000" (
set /a s+=1
set sum=
)
Автор: JekaRus
Дата сообщения: 26.04.2010 17:24
Мне нужно проверять наличие компьютера в сети по списку. Написал такой вариант
For /F "delims=" %%i In (servers.txt) Do (
Ping -n 1 %%i >Nul
If ErrorLevel 1 (echo %%i >> C:\noconnect.txt)
If ErrorLevel 0 (echo %%i >> C:\connect.txt)
)
Почему то все компы попадают в оба списка. Как сделать правильно?
Автор: NIKZZZZ
Дата сообщения: 26.04.2010 17:35
JekaRus

Цитата:
Почему то все компы попадают в оба списка. Как сделать правильно?


"If ErrorLevel 0 (echo %%i >> C:\connect.txt)" выполняет проверку правильности выполнения предыдущей строки "If ErrorLevel 1 (echo %%i >> C:\noconnect.txt)"


Код: If ErrorLevel 1 (
echo %%i >> C:\noconnect.txt
) else (
echo %%i >> C:\connect.txt
)
Автор: JekaRus
Дата сообщения: 26.04.2010 17:42
NIKZZZZ
Спасибо! Работает!
Автор: max200701
Дата сообщения: 26.04.2010 19:32
Мужики ну помогите побороть проблему,задача очень проста ,нужно контролировать есть ли интернет,и когда он пропадает ,выполнить скрипт
Тот способ что предложил mouser в принципе подходит,но он не коректно работает,после пропадания интернета виснет в 50% случаев,а требуется 100% срабатывание.Очень прошу помочь так как очень срочно надо решение этой проблемы.Заранее огромное спасибо
Автор: mugil_cephalus
Дата сообщения: 26.04.2010 19:53
max200701

Код: @echo off
:inetchk
ping 66.102.13.19>nul 2>&1
if "_%errorlevel%" equ "_0" (
rem 1 second pause
ping -n 2 localhost>nul 2>&1
goto:inetchk
) else (
тут скрипт
)
Автор: NIKZZZZ
Дата сообщения: 26.04.2010 20:09
max200701

Цитата:
нужно контролировать есть ли интернет,и когда он пропадает ,выполнить скрипт


Код: :_1
ping www.google.ru
if not %errorlevel% == 0 (
Echo run script
)
Rem Pause
ping -n 10 127.0.0.1 > nul
Goto _1
Автор: max200701
Дата сообщения: 26.04.2010 20:26
mugil_cephalus
вот сделал так

Код: :inetchk
ping 66.102.13.19 2>&1
if "_%errorlevel%" equ "_0" (
rem 1 second pause
ping -n 2 localhost 2>&1
goto:inetchk
) else (
echo -----------------
echo Start program...
ZTnBatch -h 192.168.1.1 -p 1981 -c "sys reboot 0"
if not errorlevel=0 (
                echo Connect Error! Restart...
                goto loop2
                )
echo Connect OK! Wait ~180 sec...
sleep 180
)
Автор: wolf0425
Дата сообщения: 26.04.2010 20:44
mouser
Цитата:
wolf0425
sleep.exe скачай или

ping -n seconds 127.0.0.1 > nul
где seconds - желаемое число секунд +1.
отвечаешь не читая вопроса, что-ли?
оба способа не прерывают паузу по нажатию на клавиатуру.

king_stiven

Цитата:
из второго батника после паузы сымулировать нажатие клавиши ентер

э... А как? пример можно? я только через vbs умею кнопки в окна посылать - тогда проще на нем и написать паузу, чего пока не хочется.
ps: батник может быть запущен многократно, в несколько окон с разными параметрами.

pps: а проверить (не останавливаясь) из батника нет ли в клавиатурной очереди консоли в данный момент нажатой кнопки - как-то можно ?
Автор: mugil_cephalus
Дата сообщения: 26.04.2010 20:46
max200701
проверил - работает ( изолированная workstation с adsl )
Автор: max200701
Дата сообщения: 26.04.2010 20:46
mugil_cephalus и NIKZZZZ огромное вам спасибо за помощь но в обоих случаях при пропадании интернета мой скрипт не выполняется,из-за того что при пропадании инета,вместо
Код: Обмен пакетами с www.l.google.com [74.125.87.106] с 32 байтами данных:
Ответ от 74.125.87.106: число байт=32 время=59мс TTL=55
Ответ от 74.125.87.106: число байт=32 время=52мс TTL=55
Ответ от 74.125.87.106: число байт=32 время=52мс TTL=55
Ответ от 74.125.87.106: число байт=32 время=53мс TTL=55
Автор: mugil_cephalus
Дата сообщения: 26.04.2010 20:51
max200701
проверь так
@echo off
:inetchk
ping 66.102.13.19>nul 2>&1
if "_%errorlevel%" equ "_0" (
rem 1 second pause
ping -n 2 localhost>nul 2>&1
goto:inetchk
) else (
echo.hi
pause
)

так работает?..

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.