BAT Tips:リストからPingを行うバッチ [BAT]
WindowsのバッチTipsです。
リスト(テキストファイル)に書かれたホストやIPアドレスに対してPingを行い、Pingの結果をファイル出力するバッチを書きます。
chkping.bat
@echo off
setlocal
echo **********************************************
echo ping check start
echo %date% %time%
echo **********************************************
echo.
for /f "tokens=1-3" %%i in ('ver') do set os=%%k
if "%1"=="" (
set /P USER_INPUT=リストファイル名を入力してください :
) else (
set USER_INPUT=%1
)
echo.
echo ----------------------------------------------
set of=result.csv
FOR /F "delims=" %%I in (%USER_INPUT%) do (
if "%os%"=="2000" (
call :SUB2K %%I
)
if "%os%"=="XP" (
call :SUBXP %%I
)
)
echo **********************************************
echo ping check stop
echo %date% %time%
echo **********************************************
endlocal
pause
exit /B 0
:SUB2K
ping -n 2 %1 > C:\chkping.log
findstr /C:"Reply from" C:\chkping.log > nul 2>&1
if %errorlevel% equ 0 (
echo %1,OK
echo %1,OK>> %of%
) else (
echo %1,NG
echo %1,NG>> %of%
)
del C:\chkping.log
exit /B 0
:SUBXP
ping -n 2 %1 > nul
if %errorlevel% equ 0 (
echo %1,OK
echo %1,OK>> %of%
) else (
echo %1,NG
echo %1,NG>> %of%
)
exit /B 0
Windows 2000とXPでは、Pingの結果判定が異なります。
クライアントの生死確認に使えると思います。
次回もお楽しみに!!
リスト(テキストファイル)に書かれたホストやIPアドレスに対してPingを行い、Pingの結果をファイル出力するバッチを書きます。
chkping.bat
@echo off
setlocal
echo **********************************************
echo ping check start
echo %date% %time%
echo **********************************************
echo.
for /f "tokens=1-3" %%i in ('ver') do set os=%%k
if "%1"=="" (
set /P USER_INPUT=リストファイル名を入力してください :
) else (
set USER_INPUT=%1
)
echo.
echo ----------------------------------------------
set of=result.csv
FOR /F "delims=" %%I in (%USER_INPUT%) do (
if "%os%"=="2000" (
call :SUB2K %%I
)
if "%os%"=="XP" (
call :SUBXP %%I
)
)
echo **********************************************
echo ping check stop
echo %date% %time%
echo **********************************************
endlocal
pause
exit /B 0
:SUB2K
ping -n 2 %1 > C:\chkping.log
findstr /C:"Reply from" C:\chkping.log > nul 2>&1
if %errorlevel% equ 0 (
echo %1,OK
echo %1,OK>> %of%
) else (
echo %1,NG
echo %1,NG>> %of%
)
del C:\chkping.log
exit /B 0
:SUBXP
ping -n 2 %1 > nul
if %errorlevel% equ 0 (
echo %1,OK
echo %1,OK>> %of%
) else (
echo %1,NG
echo %1,NG>> %of%
)
exit /B 0
Windows 2000とXPでは、Pingの結果判定が異なります。
クライアントの生死確認に使えると思います。
次回もお楽しみに!!
コメント 0