|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перебор адресов для подключения |
|
CMD/BAT - [решено] Перебор адресов для подключения
|
![]() Старожил Сообщения: 177 |
Здравcтвуйте, нужно решить задачу
Вот код, который нужно изменить так, чтоб переменная IP бралась из списка ip.txt и по нажатию Enter нужно отключиться от VPN и подключиться к следующему IP из файла, логин и пароль на всех компьютерах одинаковый. @echo off setlocal ENABLEDELAYEDEXPANSION set conn="lan" set login="lan" set pass="lan" set ip=192.168.10.1 rasdial | find %conn% if Errorlevel 1 ( rasdial %conn% %login% %pass% /phone:%ip% > nul if !Errorlevel!==623 echo Подключения нет, нужно создавать if !Errorlevel!==691 echo Ошибка в логине и пароле if !Errorlevel!==0 echo %ip% подключились ) else ( @rasdial 1 /disconnect ) endlocal pause |
|
Отправлено: 02:45, 16-10-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать for /f "usebackq delims=" %%i in ("ip.txt") do ( rasdial | find.exe %conn% && ( rasdial 1 /disconnect ) || ( >nul rasdial %conn% %login% %pass% /phone:%%~i if !Errorlevel!==623 echo Подключения нет, нужно создавать if !Errorlevel!==691 echo Ошибка в логине и пароле if !Errorlevel!==0 echo %%~i подключились ) ) Не проверялось. |
Отправлено: 12:40, 16-10-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Еще варианты: организовать Ваш код в виде процедуры и в цикле её вызывать:
@Echo Off cls setlocal ENABLEDELAYEDEXPANSION set conn="lan" set login="lan" set pass="lan" For /F "usebackq delims=" %%p In ("Z:\Box_In\ip.txt") Do Call :IP %%p endlocal pause Exit /B :IP Echo +++ IP=%1 set "ip=%1" rasdial | find %conn% if Errorlevel 1 ( rasdial %conn% %login% %pass% /phone:%ip% > nul if !Errorlevel!==623 echo Подключения нет, нужно создавать if !Errorlevel!==691 echo Ошибка в логине и пароле if !Errorlevel!==0 echo %ip% подключились ) else ( @rasdial 1 /disconnect ) Exit /B @Echo Off cls setlocal ENABLEDELAYEDEXPANSION set conn="lan" set login="lan" set pass="lan" Call :IP 192.168.10.1 Call :IP 192.168.10.2 Call :IP 192.168.10.3 Call :IP 192.168.10.4 Call :IP 192.168.10.5 endlocal pause Exit /B Красным Выделил куски Вашего кода, которые мной не отлаживались. Вот вариант с возможностью указывать логины пароли для каждого соединения
@Echo Off cls Rem Call :Ip IP "conn" "login" "pass" Call :IP 192.168.10.1 "lan" "lan" "lan" Call :IP 192.168.10.2 "lan" "lan" "lan" Call :IP 192.168.10.3 "lan" "lan" "lan" Call :IP 192.168.10.4 "lan" "lan" "lan" Call :IP 192.168.10.5 "lan" "lan" "lan" pause Exit /B :IP Echo +++ IP=%1 rasdial | find %2 && (@rasdial 1 /disconnect &Exit /B) >nul rasdial %2 %3 %4 /phone:%1 > nul If %Errorlevel%==623 Echo Подключения нет, нужно создавать If %Errorlevel%==691 Echo Ошибка в логине и пароле If %Errorlevel%==0 Echo %1 подключились Exit /B |
------- Последний раз редактировалось megaloman, 17-10-2021 в 15:18. Отправлено: 16:02, 16-10-2021 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Перебор жетских дисков в системе, запуск утилиты для каждого из них | totopolis | Скриптовые языки администрирования Windows | 5 | 21-09-2016 20:41 | |
Базы URL Адресов! Для ISA Server | Joni | ISA Server / Microsoft Forefront TMG | 2 | 27-05-2011 01:15 | |
Вопрос - Базы URL Адресов! Для ISA Server | Joni | Защита компьютерных систем | 0 | 26-05-2011 11:52 | |
whois для списка адресов | dascon | Вебмастеру | 4 | 10-01-2005 01:57 |
|