2015-10-09 7 views
0

Я написал несколько команд в пакете, чтобы выполнить их на основе выбора. Я использую 2 IP-адреса, для которых мне приходится менять IPv4 и DNS каждый раз при переключении между IP-адресами.Пакетные команды для изменения IP и DNS

Я сделал этот код, и это работает правильно, если я выполняю строчную линию, но в пакете они дают ошибки.

@ECHO OFF 
SET /P no= Welcome dude so what are you up to press 1 for buzznet,2 for BSNL : 

IF "%NO%"=="1" GOTO BUZZ 
IF "%NO%"=="2" GOTO BSNL 

:BUZZ 
netsh interface ipv4 set address name="Ethernet" source=static^
     addr=192.168.22.19 mask=255.255.255.0 gateway=192.168.22.1 
netsh interface ip add dns name="Ethernet" addr=192.168.18.1 
netsh interface ip add dns name="Ethernet" addr=8.8.8.8 index=2 

:BSNL 
netsh interface ip set address "Ethernet" dhcp 
netsh interface ip set dns “Ethernet” dhcp 
pause 

enter image description here

+0

Какие ошибки вы получаете? – TDG

+0

Исправлена ​​грамматика. – Chuck

+0

использовать переменные с окружающим '%' (в начале и в конце) '% NO' не имеет смысла, это должно быть'% NO% '. Удалите '@echo off', чтобы увидеть, какая строка генерирует ошибку. – Stephan

ответ

0

Как указано в комментарии, вам нужно добавить что-то, что остановить сценарий продолжения, когда работа сделана. (goto:EOF или exit /b 0)

@ECHO OFF 

:retry 
SET /P no= Welcome dude so what are you up to press 1 for buzznet,2 for BSNL : 

IF "%no%"=="1" GOTO BUZZ 
IF "%no%"=="2" GOTO BSNL 
rem if %no% is not 1 nor 2 then exit or goto :retry. 
exit /b 0 

:BUZZ 
netsh interface ipv4 set address name="Ethernet" source=static^
     addr=192.168.22.19 mask=255.255.255.0 gateway=192.168.22.1 
netsh interface ip add dns name="Ethernet" addr=192.168.18.1 
netsh interface ip add dns name="Ethernet" addr=8.8.8.8 index=2 
rem job done, then exit with a pause before 
pause 
exit /b 0 

:BSNL 
netsh interface ip set address "Ethernet" dhcp 
netsh interface ip set dns "Ethernet" dhcp 
pause 

Также последняя команда имеют неправильный формат с цитатами “Ethernet” должны быть "Ethernet"

+0

label ': retry' следует переместить перед' set/p', иначе вы создадите бесконечный цикл. – Stephan

+0

спасибо, что помогли –

 Смежные вопросы

  • Нет связанных вопросов^_^