ネットワークエンジニアとして構築やテストをしてきて、使用頻度はそこまで多くはないけど便利になるツールがあったので前回に引き続き紹介したいと思います。(もしかしたら、当たり前に使われているのかもしれませんが)
前回の記事
バッチファイル(.bat)とは
IT業界に転職して初めて使ったものです。
PCに入っているのは知って今したが、何かわからずそのままにしていました。
以下、バッチファイルの説明です。
(引用)
バッチファイルとは、一連の処理を記述したものであり、それをまとめて実行するためのテキストファイルです。 バッチファイルで処理を自動化でき、人為的ミスや手間の削減に役立ちます。 Windows環境下ではメモ帳を使って作成可能です。 コードを記入して拡張子を「.bat」に変更し、コマンドプロンプトから実行できます。
PCのイーサネットIPアドレスを変更するバッチファイル
@echo off
setlocal
set /p ipaddr=ip / subnet / gateway:
netsh interface ipv4 set addres "イーサネット 2" static %ipaddr%
ipconfig /all
pause
endlocal
ip.batの解説
@echo off
バッチファイルがコマンドの実行時にコマンドが表示されないようにするための指令です。
setlocal
変数のスコープをローカルに設定します。
これによって、スクリプトの実行が終了したときに変数がグローバルな状態に残らないようにします。
set /p ipaddr=ip / subnet / gateway:
ユーザーに**「IPアドレス」、「サブネットマスク」、「デフォルトゲートウェイ」**の入力を求めるプロンプトを表示します。
入力された情報を変数 ipaddr
に格納します。
netsh interface ipv4 set addres "イーサネット 2" static %ipaddr%
指定したネットワークインターフェース("イーサネット 2")に対して、ユーザーが入力したIPアドレスを静的に設定します。
指定するネットワークインターフェースはコントロールパネルまたはコマンドプロンプトから確認して設定します。
私のPCの場合は、全角「イーサネット」半角スペース「 」半角英数字「2」でした。
ipconfig /all
設定されたネットワーク構成情報を表示します。
pause
バッチファイルが実行を一時停止し、ユーザーがキーを押すまで続行しないようにします。これにより、スクリプトが瞬時に閉じるのを防ぎます。
endlocal
ローカル変数スコープの終了を示します。
setlocal
で設定されたローカルな変数はここで終了し、グローバルな変数に影響を与えません。
実際に動かしてみると
ip.bat実行
仮で、
ip | subnet | gateway |
---|---|---|
192.168.0.10 | 255.255.255.0 | 192.168.0.254 |
を設定してEnterを押下します。
ip subnet gatewayのIPアドレスの間は半角スペースを入れて空けるようにします。
実行結果
IPv4アドレスの後ろに(仮承諾)と表示されていますが、次で確認をするipconfigを実行したときに仮承諾の表示は消えていると思うので問題ありません。
ipconfigを確認
「IPアドレス」、「サブネットマスク」、**「デフォルトゲートウェイ」**がプロンプトで入力した値になっていることが確認できました。
コントロールパネルでも確認してみます。
コントロールパネルを確認
「コントロールパネル」>「ネットワークと共有センター」>「アダプターの設定の変更」>「指定したネットワークインターフェース」>「インターネット プロトコル バージョン 4 (TCP/IPv4) 」
設定した値になっていることが確認できました。