如果是PINGS的声明

时间:2013-08-08 11:56:01

标签: windows if-statement batch-file ping

我在一个小型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

我对脚本非常陌生,所以对任何愚蠢的错误表示歉意。如果有人有任何改进建议,我会欢迎他们。我希望这有助于人们! 罗布

2 个答案:

答案 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 }

希望这有效!