Показать полную графическую версию : [решено] Список кто не в сети
Есть список ПК в текстовом файле (pc.txt). Пытаюсь сделать написать скрипт, что бы ping брал файл pc.txt и те ПК которые НЕ в сети собрал в другой файл (offline.txt).
Смысл в том, что бы узнать какие ПК не в сети на момент запуска скрипта и сохранить их имена в файл (ping разрешен, FW отключен). Получилось наполовину, пингуется по списку)
Кто что может подсказать??
vbs, bat.
ps не желателен
Спасибо)
Подсказал один хороший человек, может кому пригодится:
@echo off
cd /d "%~d0%~p0"
if exist offline.txt del offline.txt
for /f %%i in (pc.txt) do call :pingcomp %%i
echo Finished
pause
goto :EOF
:pingcomp
ping %1 -n 1 1>nul 2>&1
if errorlevel 1 goto bad
echo Ping %1 OK
goto :EOF
:bad
echo %1 >>offline.txt
echo Ping %1 FAIL
goto :EOF
megaloman
18-05-2013, 17:56
@Echo Off
Set Spis=R:\Delete\Comp.txt
Set Noping=R:\Delete\noping.txt
Del "%Noping%" 2>nul
FOR /F "usebackq delims=" %%C IN ("%Spis%") DO Echo %%C & ping %%C >Nul 2>Nul || Echo %%C>>"%Noping%"
Если не надо видеть, какие компы пропинговываются, уберите Echo %%C &
Например, так:
@echo off
setlocal enableextensions enabledelayedexpansion
set sFileIn=%~1
if not defined sFileIn set sFileIn=pc.txt
set sFileOut=%~2
if not defined sFileOut set sFileOut=offline.txt
if exist "%sFileIn%" (
>nul copy nul "%sFileOut%"
for /f "usebackq" %%i in ("%sFileIn%") do (
ping.exe -n 1 "%%i" | >nul find.exe /i "TTL=" || >>"%sFileOut%" echo %%i
)
) else (
echo Machines file list [%sFileIn%] not found.
)
endlocal
exit /b 0
Имена входного и выходного файла можете также указывать параметрами пакетного файла.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC