Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > > > >
Восстановить пароль Регистрация

Ответ Создать новую тему
 
08.02.2012, 23:15   #1
nivs
Форумчанин
3 / 3 / 0
Регистрация: 21.10.2011
Сообщений: 50
Автоматическое подключение к серверу после разрыва / Batch (CMD/BAT)

Собственно, сабж. Пока ползал по форуму, пофиксил некоторые недочёты, но проблема осталась нершённой.
Код Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
:: запуск клиента
start vlc.exe http://192.168.1.14:8000/All
 
:: начало костыля
set /a flag = 0
 
:reload
ping 192.168.1.14
 
:: если пинга нет, то закрытие всех клиентов и начало отсчёта заново
if errorlelel 1 (taskkill /F /IM vlc.exe & set /a flag = 0)
 
:: для того, чтобы лишние клиенты не запускались
set /a flag = flag + 1
 
:: чтобы дальше не лезло, если 1 раз пингануло
if %flag% == 1 (goto reload)
 
:: если пингануло дважды, то выражение, что выше в скобках, уже выполняться не будет
:: и по идее flag >= 2
:: А flag == 2 лишь один раз, ближайший поле восстановления соединения с сервером
:: (пока связь не восстановлена flag == 0 или flag == 1
if %flag% == 2 (start vlc.exe http://192.168.1.14:8000/All)
 
:: чтобы буфер не переполнялся
if %flag% == 10 (set /a flag = 3)
 
goto reload
Ну был ещё вариант вместо
ping 192.168.1.14
if errorlelel 1 (taskkill /F /IM vlc.exe & set /a flag = 0)


использовать
ping 78.155.218.207 | find "100%%" && (taskkill /F /IM vlc.exe & set /a flag = 0)

но тоже безрезультатно. Что исправить?
08.02.2012, 23:15
AdAgent
Объявления
10.02.2012, 07:44   #2
gimntut
Форумчанин
786 / 155 / 10
Регистрация: 18.07.2011
Сообщений: 230
Автоматическое подключение к серверу после разрыва

Цитата Сообщение от nivs Посмотреть сообщение
но проблема осталась нершённой
Проблема не описана
Другие темы раздела
Автоматизация (раскидать файлы по папкам) BAT
Есть папка, в ней лежат файлы. Задача: раскидать эти файлы в папки с номерами 1, 2, 3 .... по 5 шт. (есстественно в одной папке может быть меньше пяти) Заранее спасибо! Добавлено через 9 часов 15 минут Не выполнимо? или условие не понятно?
Проверка существования файла работает в командной строке, но не в бат-файле BAT
Всем добрый день! Пишу бат - файл. в командной строке у меня работает все замечательно, а если тот же код в бат - файле, то не работает. В чем проблема то может быть? Помогите, пожалуйста!!! if not exist c:\1 echo test> c:\1.txt
10.02.2012, 23:21  [ТС]   #3
nivs
Форумчанин
3 / 3 / 0
Регистрация: 21.10.2011
Сообщений: 50
Автоматическое подключение к серверу после разрыва

Необходимо заново запускать программу при восстановлении соединения с сервером.
11.02.2012, 07:47   #4
gimntut
Форумчанин
786 / 155 / 10
Регистрация: 18.07.2011
Сообщений: 230
Автоматическое подключение к серверу после разрыва

Убери пробелы с обеих сторон от знака равно.
11.02.2012, 15:43  [ТС]   #5
nivs
Форумчанин
3 / 3 / 0
Регистрация: 21.10.2011
Сообщений: 50
Автоматическое подключение к серверу после разрыва

Та же фигня
11.02.2012, 20:08   #6
gimntut
Форумчанин
786 / 155 / 10
Регистрация: 18.07.2011
Сообщений: 230
Автоматическое подключение к серверу после разрыва

Грубых ошибок не видно.
Сделай лог работы программы и выложи его сюда в виде файла. Посмотрим.
11.02.2012, 22:56  [ТС]   #7
nivs
Форумчанин
3 / 3 / 0
Регистрация: 21.10.2011
Сообщений: 50
Автоматическое подключение к серверу после разрыва

Я не уверен,что всё верно сделал
Батник - http://pastebin.com/nReDMV76
А это наверно то, что надо вам - http://pastebin.com/8MSSmdQQ
11.02.2012, 23:16   #8
gimntut
Форумчанин
786 / 155 / 10
Регистрация: 18.07.2011
Сообщений: 230
Автоматическое подключение к серверу после разрыва

Цитата Сообщение от nivs Посмотреть сообщение
Я не уверен,что всё верно сделал
Сделано на отлично.

По полученным логам не видно, чтобы связь прерывалась.
Сможешь повторить, но с разрывом и восстановлением интернет-канала?
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@REM Пример самологирующегося батника
@if not '%SelfLogFile%'=='' goto :Execute
set SelfLogFile="%~0.log"
echo. >>%SelfLogFile%
echo ----- %DATE% %TIME% ----- >>%SelfLogFile%
prompt $S$SПапка:$S$P$_$S$SВремя:$S$T$_Команда:$S
call "%~0" %* 1>>%SelfLogFile% 2>>&1
exit
 
:Execute
 
start vlc.exe [url]http://neksia.ru:8000/All[/url]
set flag=0
:RELOAD
ping 78.155.218.207 | find "100%%" && call :KillVLC
set /a flag=flag+1
IF %flag%==1 goto RELOAD
IF %flag%==2 start vlc.exe [url]http://neksia.ru:8000/All[/url]
IF %flag%==10 set flag=3
echo %flag%
goto RELOAD
 
:KillVLC
taskkill /F /IM vlc.exe 
set flag=0
exit /b
12.02.2012, 04:04  [ТС]   #9
nivs
Форумчанин
3 / 3 / 0
Регистрация: 21.10.2011
Сообщений: 50
Автоматическое подключение к серверу после разрыва

Чудеса - работает, и так, как мне надо!
http://pastebin.com/9CEtMRM5

Вот готовый батник:
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
set /a flag = 0
сhcp 1251
 
:RELOAD
 
ping 78.155.218.207 | find "100%%" && call :KillVLC
set /a flag = flag + 1
 
IF %flag% == 1  goto RELOAD
IF %flag% == 2  start vlc.exe [url]http://neksia.ru:8000/Сплин[/url]
IF %flag% == 10 set flag=3
 
goto RELOAD
 
 
:KillVLC
 
taskkill /F /IM vlc.exe 
set flag = 0
exit /b
Если есть ошибки в оптимизации - исправте, я проблем, кроме теоретического переполнения flag, не вижу. Или всё хорошо?


Сделал запуск в фоне через *.vbs:
Код Code
1
2
3
4
Dim Shell
Set Shell = CreateObject("WScript.Shell")
Shell.run "radio.bat",0,1
Set Shell = Nothing
Работает так, как мне надо.
Последний вопрос - как вынести IP хоста и путь к потоку в отдельные переменные?
set host = 78.155.218.207 и подстановка %host% в нужное место (замену пути к потоку делал так же) работает некорректно - строки в командной строке перемещаются со страшной скоростью, VLC ничего не проигрывает... Поиграл с синтаксисом и ключами - не помогло.
12.02.2012, 09:47   #10
gimntut
Форумчанин
786 / 155 / 10
Регистрация: 18.07.2011
Сообщений: 230
Автоматическое подключение к серверу после разрыва / Batch (CMD/BAT)

Цитата Сообщение от nivs Посмотреть сообщение
Или всё хорошо?
И так сойдёт.
Цитата Сообщение от nivs Посмотреть сообщение
set host = 78.155.218.207 и подстановка %host% в нужное место (замену пути к потоку делал так же) работает некорректно
Показывай, как делал.
Цитата Сообщение от nivs Посмотреть сообщение
строки в командной строке перемещаются со страшной скоростью
Их можно остановить с помощью клавиши Pause.
Цитата Сообщение от nivs Посмотреть сообщение
Поиграл с синтаксисом и ключами - не помогло
Показывай свой синтаксис и лог к нему.

СОВЕТ
Не ставь пробелы вокруг знаков равно в IF и SET. Это одна из причин трудноуловимых ошибок.
12.02.2012, 09:47
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
C++ подключение к серверу после завершения авторизации на логинсервере
Добрый день. Для начала работы с обычным сервером необходимо сначала авторизоваться на логин сервере, который, после возни с паролями и логинами даёт ID сессии и динамический ключ для расшифровки трафика, номер протокола, IP: port нормального сервера, и кучу другой необходимой информации, после...
C++ и сети WinstonCherchil 28.02.2013 16:33
Найти точки разрыва и скачок функции в каждой точке разрыва.
Найти точки разрыва и Найти скачок функции в каждой точке разрыва \begin{bmatrix}x+1, & x<0\\ (x+1)^2, & 0<x\leq 2\\ -x+4, & x>2\end{bmatrix}
Математический анализ Serega0555 16.05.2012 17:01
BAT Подключение к интернету (rasdial), переподключение в случае разрыва.
Здравствуйте. Подскажите пожалуйста как добавить в этот .bat файл возможность подключатся к сети интернет (rasdial) при запуске, а также переподключать интернет в случае отсутствия пинга (ошибка - Request timed out.) echo off & cls set /p IP=Enter your IP Address : :top PING -n 1 %IP% -l 1...
Batch (CMD/BAT) Vika86 03.04.2012 16:29
Автоматическое подключение к удалённому серверу
Здравствуйте. Существует такая ситуация: работа с программой происходит на сервере, подключаться к нему приходится разным пользователям через удалённый рабочий стол. Возможно ли настроить вход так, чтобы пользователь, войдя на локальный компьютер со своим логином и паролем, автоматически...
Администрирование Windows klara1111111 10.05.2011 08:20
SQL Server Management St автоматическое подключение к серверу.
Всем привет. Подскажите как можно сделать так, чтобы при запуске microsoft sql server 2005 management studio проиходило автоматическое подключение к определённому серверу? Заранее :senor: p.s. Забыл добавить то, что я не являюсь администратором ни в базе данных ни на своем компьютере.
Microsoft SQL Server analyst 16.02.2011 13:01
Опции темы

Текущее время: 18:02. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.