前提
DNS情報を取得し、指定したDNSDアドレスを設定する
実現したいこと
Ethernetに限定しDNSを取得
数字の部分だけを取得、trim
設定がない(空)だったら設定、数字があったら設定しないのようにしたい。
発生している問題・エラーメッセージ
rem 調べる範囲をイーサネットだけに限定する for /f "tokens=1,2* delims=, usebackq" %%i in (netsh interface ip show dnsservers ^| findstr "Ethernet0") do @set INTERFACE1="Ethernet0" for /f "tokens=1,2* delims=, usebackq" %%i in (netsh interface ip show dnsservers ^| findstr "Loopback Pseudo-Interface 1") do @set INTERFACE2="Loopback Pseudo-Interface 1" if %INTERFACE1% == "Ethernet0" ( goto SearchDNS ) else ( goto end ) :SearchDNS rem DNSが設定されてるか調べて、数字だけを抜き取る for /f "tokens=1,2* usebackq delims=^:" %%i in (netsh interface ipv4 show dnsservers %INTERFACE1% ^| findstr "DNS サーバー"^| findstr /n /r ".") do @set DNS=%%k rem 取得したDNSアドレスの前後を削除 call :Trim %DNS% echo %DNS% rem DNSセットのコマンド set interface_name=イーサネット rem インターフェイス名を設定 set jinterface_name=イーサネット rem DNSサーバ情報を設定 set dns_server=xx.xx.xx.xx set dns_server=xx.xx.xx.xx if "%DNS%" == "" ( goto SetDNS ) else ( goto end ) :SetDNS netsh interface ipv4 set dns name="%interface_name%" source=static address="%dns_sever%" register=primary validate=yes ntsh interface ipv4 set dns name="%interface_name%" address="%dns_server2%" :Trim set DNS=%* :end pause exit``` このままだとそもそもバッチが起動?開かれません。 見ていただきありがとうございます。
0 コメント