我在一个小型IT部门工作,该部门在其他外部办公室中有多个用户,并且已经制作了一个基本的(Windows)PING命令批处理脚本,用于ping每个办公室以检查他们是否在线。我只需运行.bat文件并将其保留在屏幕的一角。
如果ping失败则将背景变为红色,如果有效则保持蓝色。以下是内容:
@echo off
COLOR 97
:start
echo EXTERNAL CHECK
PING www.google.com
IF %ERRORLEVEL% EQU 0 COLOR 97
IF %ERRORLEVEL% EQU 1 COLOR 47
echo SITE A CHECK
PING x.x.x.x
IF %ERRORLEVEL% EQU 0 COLOR 97
IF %ERRORLEVEL% EQU 1 COLOR 47
echo SITE B CHECK
PING x.x.x.x
IF %ERRORLEVEL% EQU 0 COLOR 97
IF %ERRORLEVEL% EQU 1 COLOR 47
echo SITE C CHECK
PING x.x.x.x
IF %ERRORLEVEL% EQU 0 COLOR 97
IF %ERRORLEVEL% EQU 1 COLOR 47
echo SITE D CHECK
PING x.x.x.x
IF %ERRORLEVEL% EQU 0 COLOR 97
IF %ERRORLEVEL% EQU 1 COLOR 47
goto start
我对脚本非常陌生,所以对任何愚蠢的错误表示歉意。如果有人有任何改进建议,我会欢迎他们。我希望这有助于人们! 罗布
答案 0 :(得分:3)
尝试:
@echo off
:color 97
:start
echo EXTERNAL CHECK
PING www.google.com
call :color
echo SITE A CHECK
PING www.yahoo.com
call :color
echo SITE B CHECK
PING 127.0.0.1
call :color
echo SITE C CHECK
PING www.nowhere.com.fail
call :color
echo SITE D CHECK
PING www.failfail.com.fail
call :color
goto start
:color
IF %ERRORLEVEL% EQU 0 (
COLOR 97
) else (
COLOR 47
)
GOTO:EOF
答案 1 :(得分:0)
由于大多数较新的Windows版本都包含PowerShell,因此您可以将单行PowerShell命令合并到批处理中,或者更改单行颜色的任何内容。我的例子:
@ECHO OFF
FOR %% i IN(
Server1的
Server2上
任何其他网址
)DO(
PowerShell -NoProfile -Command“If(Test-Connection %% i -Count 1 -Quiet){Write-Host”%% i - 成功ping“-F Green} else {Write-Host”%% i FAILED“-F Red }
)
希望这有效!