複数のバッチ処理で処理共通化するためネットワーク判断部と個別前処理に切り分け
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/