スポンサーリンク

050-VBA

CSVに記述したホスト名とIPアドレスのリストからホスト名が一致する場合にIPアドレスを設定するバッチファイル!

へっぽこヘタレシステム管理者の管理人です。

仕事の関係でネットワークのセグメントが異なる環境をいったり来たりする端末が出てきたので・・・

なんとか簡単にIPアドレスを環境に合わせて設定できる方法がないかネットでイロイロ調べてバッチファイルを作る方法が分かったので忘備録として掲載しておきます。

まず、下図のようなリストを【CSV】で作成します。

名前はとりあえず【ip_list.csv】としておきましょう。

メモ帳で開くと下の様になります。

#PClist,,,,,,,
hostname,IPsettei,DNSsettei,IPaddress,GW,mask,DNS1,DNS2
hostname1,static,static,192.168.1.10,192.168.1.1,255.255.255.0,192.168.1.254,192.168.1.253
hostname2,static,static,192.168.11.10,192.168.11.1,255.255.255.0,192.168.11.254,192.168.11.253

リストの内容ですが・・・

  • 1:ホスト名
  • 2:IPアドレスの設定が静的かどうか
  • 3:DNSの設定が静的かどうか
  • 4:IPアドレス
  • 5:GW
  • 6:サブネットマスク
  • 7:DNS1
  • 8:DNS2

という内容です。

次にバッチファイルを作成します。

バッチファイルの内容は次のとおりです。

@echo off

echo ************************************************
echo リストからホスト名に一致するIPアドレスを設定します
echo ************************************************

pause

echo ***********************
echo IPアドレスのリストを取得
echo ***********************


rem リストファイル(CSV)のパスを指定する
SET FILE_LIST=d:\ip_settei\ip_list.csv
SET FLG=0


rem リストを読み込み
rem ホスト名があった場合の処理
for /F "delims=(,) tokens=1-8" %%a in (%FILE_LIST%) do (
  if %COMPUTERNAME%==%%a (
    SET PCname=%%a
    SET IPset=%%b
    SET DNSset=%%c
    SET IP=%%d
    SET GW=%%e
    SET MASK=%%f
    SET DNS1=%%g
    SET DNS2=%%h
    SET FLG=1
  )
)

pause

echo *******************
echo ホスト名の存在確認
echo *******************
if %FLG% == 0 (
	echo **********************************
	echo  ホスト名がリストにありませんでした
	echo **********************************
	goto err
)


pause

echo ****************
echo IPアドレスの設定
echo ****************

if %IPset% == static (
	netsh interface ipv4 set add name="イーサネット" source=static addr=%IP% mask=%MASK% gateway=%GW%
) else if %IPset% == dhcp (
	netsh interface ipv4 set add name="イーサネット" source=dhcp
) else (
	echo staticかdhcpを選択して下さい
	goto err
)


pasuse

echo ************
echo DNSのの設定
echo ************

if %DNSset% == static (
	netsh interface ipv4 set dns name="イーサネット" source=static addr=%DNS1% register=primary
	netsh interface ipv4 add dns name="イーサネット" addr=%DNS2%
) else if %DNSset% == dhcp (
	netsh interface ipv4 set dns name="イーサネット" source=dhcp
) else (
	echo staticかdhcpを選択して下さい
	goto err
)


:err
pause
exit

このままコピペして拡張子を【bat】にすればOKです。

リストのファイル名と絶対パスだけは合わせてください。

一つの処理毎に【pause】を入れることにより途中で止まった場合は、どこがおかしいか確認できます。

最終的に問題なく動けは【pause】は消しても問題ありません。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

スポンサーリンク
スポンサーリンク

-050-VBA

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

ZOOM+Openmeetings+VideoCaptureでインターネットに接続されていないLAN環境でもWEBセミナーを受講できる

へっぽこヘタレシステム管理者の管理人です。 さて・・・ コロナ禍のせいで、なんでもかんでもZOOM等のWEB会議ソフトを使って、会議や講習会が開催され、その度に準備に呼ばれる面倒な日々を送っております …

投票事務・投票録等の書類作成を少しでも簡単にしたい!紙とエンピツと電卓での集計をエクセルを使って簡単にしたい!

超底辺地方公務員の管理人です。 さて、令和3年度の衆議院議員選挙もなんとか終わり・・・ これでようやく予算事務に専念できそうですが・・・ 既に締め切りが迫っており、かなりヤバイです。 間に合うか非常に …

アクティブディレクトリー【AD】のグループポリシー【ログオンスクリプト】で資格情報を消すコマンド【cmdkey】が動かなくてハマった件

へっぽこヘタレシステム管理者の管理人です。 さて、職場のパソコン更新時において・・・ 端末設定の段階で、パソコンにサーバーへの管理者権限の資格情報が保存されていたことが判明し、 その対応で奔走した件を …

バッチファイルでウエイト処理をする方法!コマンドプロンプト・Wait!

へっぽこヘタレシステム管理者の管理人です。 さて、モノ覚えが悪い管理人がよく忘れるコマンドで・・・ コマンドプロンプトやバッチファイルでウエイト処理を入れるというものがあります。 すぐに忘れるので忘備 …

Wordでコンボボックス【combobox】を使ってリッチテキストコンテンツコントロールに文字列を設定する方法!

へっぽこヘタレシステム管理者の管理人です。 WORDのマクロで悪戦苦闘しておりましたが・・・ 前回の記事はこちら 今度は、フォームにせっちしたコンボボックスのリストから選択して、本文のコンテンツコント …

スポンサーリンク
スポンサーリンク
スポンサーリンク