メンターの報酬に合わせる
投稿見ていただきありがとうございます。
ただいま作っているプログラム、特にtrimとifの部分でうまくいきません。
どなたか意見を頂けないでしょうか?
em 調べる範囲をイーサネットだけに限定する
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