Windowsのhostsをsmartに確認する方法を考えよう!

プロジェクトで「hogehogeサーバーのIPアドレスなんだっけ?」って聞かれることがよくあるんだけど,毎回"C:\WINDOWS\system32\drivers\etc\hosts"を辿るのはイケていないなーと思って,とりあえずhostsのショートカットをクイック起動に置いてみたりしてた.でもまだイケてない気がして,もっとsmartな方法はないのかなと考え始めたのがキッカケ.

ツールなどを使えば簡単なのかもしれないけど,今回は会社のPCなど勝手にソフトを入れたり,外部記憶装置からデータを取り込んだりはできない環境でも確認できる方法を考えたいので,やはりWindowsバッチかなと思ったり思わなかったり.

案1:findコマンドを使う

/vオプションで指定した文字列を含まない行を表示する.

find /v "#" C:\WINDOWS\system32\drivers\etc\hosts
 ---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS

127.0.0.1       localhost
192.168.10.1    hogehoge1
192.168.10.2    hogehoge2
192.168.10.3    hogehoge3

正直これで期待通りの出力なので十分な気もするけど,例えば以下のようにhostsが切られていた場合改行がそのまま出力されてしまって嫌だなって.もはや見栄えの問題だけど(笑)

# localhost
127.0.0.1       localhost

# hogehoge1-2
192.168.10.1    hogehoge1
192.168.10.2    hogehoge2

# hogehoge3
192.168.10.3    hogehoge3
 ---------- C:\WINDOWS\SYSTEM32\DRIVERS\ETC\HOSTS

127.0.0.1       localhost

192.168.10.1    hogehoge1
192.168.10.2    hogehoge2

192.168.10.3    hogehoge3

スーパーユーザーのためのWindowsコマンド再入門:find――テキストファイルの文字列検索 - ITmedia エンタープライズ

案2:考えちう

他の案が思いついたら更新します.案1と同じ出力結果になる他のコマンドやよりsmartな方法がありましたら是非教えてください.

関連エントリー