Windows の hosts ファイルに追記する bat

経緯

Windows の hosts ファイルに一行追記するだけの処理を自動化したかったので作ることにしました。

今回のケースでは

  • 重複確認なし
  • PowerShell が使用できない可能性あり
  • hosts の中に日本語コメントが混じっている可能性があり、文字化けさせないように

という制約が存在しており、若干厄介な感じ。

対応

以上を踏まえて bat のみで対処することにしました。

@echo off

rem add linfefeed
echo;>> %SystemRoot%\System32\drivers\etc\hosts
rem append hosts
echo 192.2.0.1    HOSTNAME>> %SystemRoot%\System32\drivers\etc\hosts
rem output message
echo The addition to hosts has been completed.
rem confirm hosts
notepad c:\windows\system32\drivers\etc\hosts

日本語を混ぜると上手く走らなかったのでコメントはアルファベットオンリーで。

注意点としては、共有フォルダ等のネットワーク上ではなく、ローカル上で実行、かつ管理者権限として実行することが必要です。

ただし、 bat で対処したことがかえって功を奏したのかコメントが文字化けせずに済んだのでこれで済。

参考

別件: hosts と lmhosts

NetBIOS での名前解決は lmhosts でWindowsファイルサーバ系などが該当、一般的な名前解決は hosts という認識で良さそうです。

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。