1

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

我对编写脚本很陌生,因此对任何愚蠢的错误表示歉意。如果有人有任何改进它的建议,我会欢迎他们。我希望这对人们有所帮助!抢

4

2 回答 2

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
于 2013-08-08T12:13:51.683 回答
0

Since most newer Windows version include PowerShell, you can incorporate single line PowerShell command into your batch, or whatever to change the color of a single line. My example:

@ECHO OFF
FOR %%i IN (
     Server1
     Server2
     any other URL
) DO (
     PowerShell -NoProfile -Command "If (Test-Connection %%i -Count 1 -Quiet) { Write-Host "%%i - successfully pinged" -F Green } else { Write-Host "%%i FAILED" -F Red}
)

Hope this works!

于 2014-09-10T16:02:11.643 回答