プロジェクトで「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な方法がありましたら是非教えてください.