実現したいこと
こんにちは、初めまして
netsh interface ip show dns name=イーサネット
インターフェイスの構成 "イーサネット"
静的に構成された DNS サーバー: 8.8.8.8
8.8.4.4
次のサフィックスで登録します: プライマリのみ から優先
バッチ処理にて、代替DNSサーバのアドレスを8.8.4.4に指定するファイルを作りたいです
代替DNSサーバがない場合は8.8.4.4を指定し、既にある場合は元々あった代替DNSサーバをログに残して、8.8.4.4に指定したいです
発生している問題・分からないこと
優先DNSサーバのアドレスと代替DNSサーバのアドレスを変数に格納するのが上手くいかないです。
エラーメッセージ
error
1ECHO は <OFF> です。
該当のソースコード
@echo off setlocal REM 設定 set interface="イーサネット" set secondaryDNS=8.8.4.4 set logFile=D:\LOGS\dp0dns_backup.log REM ログファイルに日付と時間を追加 echo %date% %time% >> %logFile% REM 現在のDNS情報を取得しログ出力 echo 現在のDNS情報を取得中... >> %logFile% netsh interface ip show dns name=%interface% >> %logFile% REM 現在の優先DNSサーバを取得 set primaryDNS= for /f "tokens=3 delims= " %%a in ('netsh interface ip show dns name=%interface% ^| findstr /r /c:"^ *DNS Servers"') do ( if not defined primaryDNS ( set primaryDNS=%%a ) ) echo %primaryDNS% >> %logFile% REM セカンダリが設定されているかチェック set currentSecondaryDNS= for /f "tokens=3 delims= " %%a in ('netsh interface ip show dns name=%interface% ^| findstr /r /c:"^ *DNS Servers"') do ( if defined primaryDNS if not "%%a"=="%primaryDNS%" ( set currentSecondaryDNS=%%a goto :foundSecondary ) ) :foundSecondary if defined currentSecondaryDNS ( REM セカンダリDNSが設定されている場合 echo セカンダリDNSが設定されています。 >> %logFile% if "%currentSecondaryDNS%"=="%secondaryDNS%" ( REM セットしようとしているIPと同じ場合 echo セカンダリDNSは既に %secondaryDNS% に設定されています。処理を終了します。 >> %logFile% exit /b 0 ) else ( REM セットしようとしているIPと異なる場合 echo 現在のセカンダリDNS %currentSecondaryDNS% を削除します。 >> %logFile% netsh interface ip delete dns name=%interface% addr=%currentSecondaryDNS% >> %logFile% ) ) REM 優先DNSを再設定(保持) if defined primaryDNS ( echo 優先DNSを %primaryDNS% に再設定します。 >> %logFile% netsh interface ip set dns name=%interface% source=static addr=%primaryDNS% >> %logFile% ) REM セカンダリDNSをセットする echo セカンダリDNSを %secondaryDNS% に設定します。 >> %logFile% netsh interface ip add dns name=%interface% addr=%secondaryDNS% index=2 >> %logFile% REM 最終結果ログ出力 echo セカンダリDNSの設定が完了しました。 >> %logFile% exit /b 0
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
チャットGPTに聞いてもよくわからなかったです。
補足
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/07/08 01:06