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,該列表不斷被重新掃描以確保機器保持在線狀態。不,我不需要任何歷史。基本上我需要將文件複製到一臺機器上,這樣可以幫助我跟蹤它們。 –