Крымский форум (Crimea-Board) Поиск Участники Помощь Текстовая версия Crimea-Board.Net
Здравствуйте Гость .:: Вход :: Регистрация ::. .:: Выслать повторно письмо для активации  
 
> Рекламный блок.
 

Реклама на форуме

 
> Ваша реклама, здесь
 
 
 

  Start new topic Start Poll 

> Никогда не любил Goto, Bat файл
Rumata | Профиль
Дата 7 Июля, 2018, 3:00
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



сетевая у меня не без приколов, при каждом ребуте подтыкает DHCP, что мне иногда нафиг не нужно

собственно BAT файл на коленке (два перехода, нормальное состояние и работа с LIB доменами)

Код

@echo off
set /p Network="Select settings (1 - normal, 2 - lib): "
echo Select - %Network%

if %Network% equ 2 goto lib

:normal
netsh interface ip set address "dekker_home" static 192.168.124.153 255.255.255.0 192.168.124.100
netsh interface ipv4 set dnsserver "dekker_home" static none
netsh interface ipv4 add dns "dekker_home" 192.168.124.100 1

:lib
netsh interface ip set address "dekker_home" static 192.168.124.153 255.255.255.0 192.168.124.100
netsh interface ipv4 set dnsserver "dekker_home" static none
netsh interface ipv4 add dns "dekker_home" 51.254.25.115 1

echo Network IP change:
ipconfig /all
echo _____
pause


вопрос в студию, не работает оператор безусловного перехода GOTO, постоянно исполняется вторая метка, в данном случае :lib


____________________
Ничто так не сближает людей, как снайперский прицел
Бобер | Бездомный
Реклама двигатель прогресса       
Quote Post



А кому сча лехко?
Group Icon
















_________________
Желающим разместить рекламу смотреть сюдой
/   
obscure | Профиль
Дата 7 Июля, 2018, 10:26
Quote Post




Group Icon

Группа: Старожил
Сообщений: 5365
Регистрация: 16.04.12
Авторитет: 46
Вне форума

Предупреждения:
(60%) XXX--



Цитата(Rumata @ 7 Июля, 2018, 2:00)
вопрос в студию, не работает оператор безусловного перехода GOTO

ложное утверждение


Цитата(Rumata @ 7 Июля, 2018, 2:00)
постоянно исполняется вторая метка, в данном случае :lib

см. выше




вот рабочий шаблон

Код

@echo off
set /p Network="Select settings (1 - normal, 2 - lib): "
echo Select - %Network%

if %Network% equ 2 goto lib
:normal
echo normal
goto end

:lib
echo lib

:end

echo Network IP change:
echo 'ipconfig /all'
echo _____
pause


переход на метку ещё не означает выход из оной
метка это просто метка

В Вашем случае при выборе "1" - сначала выполнялось normal, а за ней - lib
как написано так и работало.


____________________
Во времена всеобщей лжи говорить правду - это экстремизм©Оруэлл
PM
Rumata | Профиль
Дата 7 Июля, 2018, 13:01
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



тенкс, работает smoke.gif


____________________
Ничто так не сближает людей, как снайперский прицел
Rumata | Профиль
Дата 9 Августа, 2022, 19:01
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



эммм ... все работало, нынче

Цитата
Синтаксическая ошибка в имени файла, имени папки или метке тома.


Код
@echo off
set /p Network="Select settings (1 - normal, 2 - lib): "
echo Select - %Network%

if %Network% equ 2 goto lib

:normal
netsh interface ip set address "dekker_home" static 192.168.124.153 255.255.255.0 192.168.124.100
netsh interface ipv4 set dnsserver "dekker_home" static none
netsh interface ipv4 add dns "dekker_home" 192.168.124.100 1
goto end

:lib
netsh interface ip set address "dekker_home" static 192.168.124.130 255.255.255.0 192.168.124.100
netsh interface ipv4 set dnsserver "dekker_home" static none
netsh interface ipv4 add dns "dekker_home" 195.10.195.195 1

:end

echo Network IP change:
ipconfig /all
echo _____
pause


____________________
Ничто так не сближает людей, как снайперский прицел
User80218 | Профиль
Дата 9 Августа, 2022, 20:49
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1393
Регистрация: 09.02.18
Авторитет: 32
Вне форума

Предупреждения:
(0%) -----


"if %Network% equ 2 goto lib"
попробуй заменить на
"if %Network% == 2 goto lib"
но незнаю. Странный скрипт.
у SET нет ключей. Садишь ты на %Network% строку а не цифру, у IF нет параметра equ, но у меня он именно на IF матюкается.

Отредактировал User80218 - 9 Августа, 2022, 20:49
PMEmail Poster
Rumata | Профиль
Дата 10 Августа, 2022, 7:05
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



странный, но работал ))

дело в том что даже в командной строке, если брать построчно, например

netsh interface ipv4 set dnsserver "dekker_home" static none

тоже матерится - Синтаксическая ошибка в имени файла, имени папки или метке тома.

т.е. он ругается на все три строчки

Код
netsh interface ip set address "dekker_home" static 192.168.124.130 255.255.255.0 192.168.124.100
netsh interface ipv4 set dnsserver "dekker_home" static none
netsh interface ipv4 add dns "dekker_home" 195.10.195.195 1



____________________
Ничто так не сближает людей, как снайперский прицел
User80218 | Профиль
Дата 10 Августа, 2022, 18:43
Quote Post




Group Icon

Группа: Gold Member
Сообщений: 1393
Регистрация: 09.02.18
Авторитет: 32
Вне форума

Предупреждения:
(0%) -----


ок. а что такое netsh? в BAT такой команды нету, т. е. по логике - вызов внешней утилиты с аргументами. Она есть в системе?
Если нет - то да - ошибка в имени файла - интерпретатор не находит чего от него запускать хотят.

Кстати, оффтопом, интереса ради а заради вот такое передёргивание DNS? Чего пытаемся достичь?
PMEmail Poster
Rumata | Профиль
Дата 10 Августа, 2022, 19:23
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



Цитата(User80218 @ 10 Августа, 2022, 17:43)
Кстати, оффтопом, интереса ради а заради вот такое передёргивание DNS? Чего пытаемся достичь?

зону LIB доменов, без вендовой многоходовки по смене DNS

netsh

https://docs.microsoft.com/ru-ru/windows-se.../netsh-contexts


____________________
Ничто так не сближает людей, как снайперский прицел
obscure | Профиль
Дата 11 Августа, 2022, 11:42
Quote Post




Group Icon

Группа: Старожил
Сообщений: 5365
Регистрация: 16.04.12
Авторитет: 46
Вне форума

Предупреждения:
(60%) XXX--


Цитата(User80218 @ 9 Августа, 2022, 19:49)
транный, но работал ))

дело в том что даже в командной строке, если брать построчно, например

netsh interface ipv4 set dnsserver "dekker_home" static none



1. сначала нужно определиться с именем интерфейса, который собираететсь мучать
netsh interface ip show config

2. потом подправить батник и заменить "dekker_home" на вменяемый(обнаруженные выше)
3. профит.(static пропущено намеренно, чтоб не провоцировать ИБ)

Присоединённое изображение

Отредактировал obscure - 11 Августа, 2022, 11:51


____________________
Во времена всеобщей лжи говорить правду - это экстремизм©Оруэлл
PM
Rumata | Профиль
Дата 11 Августа, 2022, 12:17
Quote Post



The One
Group Icon

Группа: Admin
Сообщений: немеряно
Регистрация: 21.06.03
Авторитет: 100
Вне форума



вот странно, почему раньше все работАло почти 4 года


____________________
Ничто так не сближает людей, как снайперский прицел
obscure | Профиль
Дата 11 Августа, 2022, 13:26
Quote Post




Group Icon

Группа: Старожил
Сообщений: 5365
Регистрация: 16.04.12
Авторитет: 46
Вне форума

Предупреждения:
(60%) XXX--


Цитата(Rumata @ 11 Августа, 2022, 11:17)
вот странно, почему раньше все работАло почти 4 года

алиас на интерфейсе был, потом:
сменил провайдера/перенастроил сеть/переобозвал впн/переобозвал адаптер/заменил сетевуху

всё, что угодно могло произойти

идея проста - netsh не может работать с воздухом и привешивать(менять) айпишники к чему угодно, ей обязательно нужно указывать существующий(!!!) интерфейс.
нет интерфейса - нет результата




Отредактировал obscure - 11 Августа, 2022, 13:33


____________________
Во времена всеобщей лжи говорить правду - это экстремизм©Оруэлл
PM

Topic Options Start new topic Start Poll 

 



[ Script Execution time: 0.0135 ]   [ 13 queries used ]   [ GZIP включён ]






Политика конфиденциальности

Top