回答編集履歴

1

訂正と追記

2024/07/04 14:13

投稿

otn
otn

スコア85507

test CHANGED
@@ -1,7 +1,8 @@
1
1
  まず、`@echo off`を付けるのはデバッグが完了して正常動作を確認できてからです。
2
2
 
3
- 環境変数設定後に、`netsh interface ip show dns name=%interface% >> %logFile%`を追加して、コマンドの出力を確認しましょう。意図しているものと違うはずです。
3
+ ~~環境変数設定後に、`netsh interface ip show dns name=%interface% >> %logFile%`を追加して、コマンドの出力を確認しましょう。意図しているものと違うはずです。~~
4
- コマンドの結果に合わせて、`findstr`の文字列や、取り出すトークン番号を決めましょう。
4
+ ~~コマンドの結果に合わせて、`findstr`の文字列や、取り出すトークン番号を決めましょう。~~
5
+ (追記) 失礼しました。上記コードはもともと入ってましたね。ただ、Windows10の場合、コマンドプロンプトが日本語モードでもUSモード、UTF8モードでも`findstr`にお書きの文字列とはマッチしないですし、tokens番号も違います。netshの出力がOSによって違って、お使いのWindowsではそれで合ってるなら、下記の`=`だけ直せば良いかと思います。(追記終わり)
5
6
 
6
7
  `for /f "tokens=3 delims= " %%a in ('netsh interface ip show dns name=%interface% ^| findstr /r /c:"^ *DNS Servers"') do (`
7
8
  とお書きですが、**二重引用符(`"`)の外の**`=`は、CMD.EXEの組み込みコマンドや構文の多くの場所で空白扱いなので(下記注)、上記は、