募集中

DNSを自動取得し、新たに設定するバッチを作成しているのですがうまくいきません

Ruby Python

2022年10月22日 15:10

投稿見ていただきありがとうございます。

ただいま作っているプログラム、特に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


見ていただきありがとうございます。

オープンチャット


オープンチャットはありません。

回答可能なメンター

まだいません。