0
我正在尝试编写一个工作脚本,告诉我网络上的哪些计算机处于联机状态,哪些计算机处于脱机状态。从批处理中删除值
目前我有它显示在线/离线状态,从一个文本文件的PC名称作为输入到一个集变量。
我到目前为止的代码是:
@echo off
setlocal EnableDelayedExpansion
for /F "tokens=*" %%a in (VC.txt) do call :append %%a
:ping
for %%i in (%VC) do (
ping %%1 -n 1 >nul
call :test %%i
)
echo.
goto :ping
:test
IF %ERRORLEVEL% EQU 0 (
echo Pinging %1
) else (
echo Off %1
)
goto :eof
:append
if defined VC (
set VC=%VC% %1
) else (
set VC=%1
)
我希望发生的是一次计算机联机,将其从名单中删除。基本上只是显示离线机器的列表。 这可能没有擦拭整个设置,并创造新鲜?
设计问题:只是因为机器上线并不意味着它会保持在线状态。帮助我理解为什么您不需要在任何轮询间隔时间内重新扫描整个机器列表?补充想法:你需要保留“历史”统计数据吗?例如给定机器的平均正常运行时间,机器的总停机时间。在“批处理”文件中这样做似乎是次优的,但你可能有一个很好的理由。无论如何,对不起,我无法帮助你确切的问题。 *耸耸肩*祝你好运。 – jgreve
有两个拼写错误:'for %% i in(%VC)do' should read for for %% i in in(%VC%)do'(missing'%'sign),'ping %% 1 -n 1 '应该读'ping %% i -n 1' ... – aschipfl
@jgeve,该列表不断被重新扫描以确保机器保持在线状态。不,我不需要任何历史。基本上我需要将文件复制到一台机器上,这样可以帮助我跟踪它们。 –