間違いだらけの備忘録

このページの内容は無保証でありこのページの内容によって直接、または間接に損害を受けられたとしても私は責任を取りません。

バッチファイルでネットワーク判別

複数のバッチ処理で処理共通化するためネットワーク判断部と個別前処理に切り分け

check.bat

cd /d %~dp0
call isnet.bat
if %errorlevel% equ 1 (
  :: 対象とするネットワークでなければ処理終了
  @echo EXNET
  exit /b
) 
call main.bat

参考:

https://code.i-harness.com/ja/q/4cd05c

isnet.bat

REM @echo off
setlocal ENABLEDELAYEDEXPANSION
:: 環境変数 MyIP1, MyIP2, MyIP3... にIPアドレスを取得する
 
call :GET_IP_ADDRESSES
if defined MyIP1 echo IP1: %MyIP1%
if defined MyIP2 echo IP2: %MyIP2%
if defined MyIP3 echo IP3: %MyIP3%
goto EOF
 
 
:GET_IP_ADDRESSES
set GET_IP_ADDRESSES_COUNT=1
for /f "usebackq delims=: tokens=2*" %%i in (`ipconfig.exe ^| findstr.exe /r /c:"IPv4 .*"`) do (
set MyIP=%%i
set MyIP!GET_IP_ADDRESSES_COUNT!=!MyIP: =!
set /a GET_IP_ADDRESSES_COUNT=!GET_IP_ADDRESSES_COUNT!+1
)
exit /b
 
 
:EOF

:: 192.168.x.x を対象とする
SET SEARCHTEXT="192.168."
 
ECHO %MyIP1% | find %SEARCHTEXT% >NUL
IF NOT ERRORLEVEL 1 (goto HIT)
ECHO %MyIP2% | find %SEARCHTEXT% >NUL
IF NOT ERRORLEVEL 1 (goto HIT)
ECHO %MyIP3% | find %SEARCHTEXT% >NUL
IF NOT ERRORLEVEL 1 (goto HIT)
exit /b 1

:HIT
echo "HIT"
exit /b 0

参考:

http://vktec.com/blog/1072
https://golorih.exblog.jp/21284350/

このページにはhatena以外のサービスからのコンテンツが埋め込まれています。 hatenaによりGoogle AdSense 広告が埋め込まれています。