プロが教える店舗&オフィスのセキュリティ対策術

Hosts書き換え用バッチファイルの作り方・・・

お世話になります。
サーバのIPアドレス変更に伴い、数十台のPCのHostsファイルを書き換える必要があります。
具体的には、

SERVER1 192.xxx.xxx.xxx を削除し、
SERVER1 10.xxx.xxx.xxx を追加する

という操作がしたいわけです。

ただし、これ以外の登録はPCにより色々ですので、あくまで現行のものを削除、差分を追加、という形にしたいのです。
手作業で行うのはあまりに大変ですので、Batファイルなどを作って必要な方に配布できたら・・・と思うのですが、削除→追加の書き方がわかりません。

ご教示いただけますと助かります。
宜しくお願いいたします。

A 回答 (2件)

>Hosts書き換え用バッチファイルの作り方・・・



そもそもこの手のスクリプトが必要な場合DNSを立ち上げる必要があります。10年以上も前なら、そんな予算がないとか、そんな知識がある社員がいないとか、クライアントからよく怒られたものです(よく現場の営業と喧嘩したものです)。

でも今は家庭でもルーターを設置する方が多く、たくさんの素人の方が設置しています。

何せ1万円前後で手に入り、マニュアル通りにやればいいわけですから。設定してくれる業者もります(3万円前後)。


ルーターにDNSサーバー機能がある場合が多く、それで行うのをお勧めします。もちろん使用していないパソコンをDNSサーバーにするのがいいです。


で、本題です。
このレベルであれば確かにDOSのバッチファイルで用は足りますが・・・・・

私はこの手のサンプルを投稿するのはしませんが(業務でやるならプロでしょう。おれは金もらっていない)、まあこのレベルならいいでしょう。テストを含め5分で作成したので、穴だらけですが、まあ用は足ります。そのためめちゃくちゃ単純にしています。削除して追加。もちろん管理者で行ってください。

@echo off
cls
set delsrv="SERVER1 111\.111\.111\.111" "SERVER2 222\.222\.222\.222" "SERVER3 333\.333\.333\.333"

set addsrv="SERVER1 444.444.444.444" "SERVER2 555.555.555.555" "SERVER3
666.666.666.666"

set hostsfile="%systemroot%\system32\drivers\etc\hosts"

copy %hostsfile% %hostsfile%.bac

for %%a in (%delsrv%) do (
echo del [%%a]
findstr /r /v %%a %hostsfile% > tmp.txt
type tmp.txt > %hostsfile%
)
echo\
for %%a in (%addsrv%) do (
echo add [%%a]
echo %%~a >> %hostsfile%
)
del /q tmp.txt > NUL 2>&1
echo ---------- end -----------------------
type %hostsfile% | more
pause

※なお、IPに333はないでしょう。わかりやすくするためにそのようにいした。
    • good
    • 2

http://www.fpcu.jp/dosvcmd/bbs/log/cat3/cat54/2- …
読んで分かります?
私は VB 使いなので VBScript でやったりしますが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!