PDA

Показать полную графическую версию : [решено] Помогите написать bat для проверки валидности адресов в списке.


Eugene Shugaev
15-03-2014, 23:37
Идея такая, есть список адресов сайтов in.txt и нужно через ping проверить работают ли они и вывести список работающих сайтов в out.txt
Вот что я написал:
@echo off
set /a c=0
rem Это построчное чтение из файла
for /f "UseBackQ Delims=" %%A IN ("in.txt") do (
set /a c+=1
if !c!==1 set "a=%%A"
)
ping %a% >> temp.txt
pause

Но это далеко не то что надо((((

Iska
15-03-2014, 23:58
Как-то так:
@echo off
setlocal enableextensions enabledelayedexpansion

set sMachineList=in.txt
set sResultFile=out.txt

if exist "%sMachineList%" (
>"%sResultFile%" (
for /f "usebackq" %%i in ("%sMachineList%") do (
ping.exe -n 1 %%~i | >nul find.exe /i "TTL=" && echo %%i
)
)
) else (
echo Machine list file [%sMachineList%] not found.
exit /b 1
)

endlocal
exit /b 0

Eugene Shugaev
16-03-2014, 01:53
Iska, Вопрос может и тупой, хоть так и есть. Но задам: Я трачу в день около 3 часов чисто на написание bat и лазанье по форумам. Но мне все равно не хватает знаний. И так : как вы Iska, постигли таких глубоких знаний??? гугу в bat

Iska
16-03-2014, 10:27
И так : как вы Iska, постигли таких глубоких знаний??? гугу в bat »
Во-первых, вовсе не глубоких. Во-вторых, не достиг. В третьих, отнюдь не «гуру».

У меня были хорошие учителя:

Серый форум: «Коллекция» CMD/BAT (http://forum.script-coding.com/viewforum.php?id=12) и Разработка CMD/BAT (http://forum.script-coding.com/viewforum.php?id=18).
Ru-Board: все одиннадцать частей Задачи на bat-файлах (http://forum.ru-board.com/topic.cgi?forum=62&topic=23213&start=3900), три части Автоматизация администрирования. (http://forum.ru-board.com/topic.cgi?forum=8&topic=41227&start=220), четыре части Командная строка, батники, сценарии (bat, cmd) (http://forum.ru-board.com/topic.cgi?forum=5&topic=33080&start=6920).
Здесь: Скриптовые языки администрирования Windows (http://forum.oszone.net/forum-102.html).

А также справочники, книги, документы, упоминаемые по приведённым ссылкам.

Читать. Изучать. Стараться понять, как работает. Если не понимаете — делаете закладку на потом и двигаетесь дальше. Потом возвращаетесь и снова пытаетесь понять. Решаете практические задачи. Даже не свои, чужие. В том числе самые нелепые и Вам лично абсолютно не интересные. Каких-то семь-восемь лет — и Вы «в дамках» ;).

Разумеется, в процессе Вам никак не избежать изучения сопутствующих и более новых технологий — WSH и PoSH. Не пренебрегайте этим. А можете и сразу начинать с PoSH.

Гуллипут
16-03-2014, 15:15
Iska, я до сих пор проверку результата ping делал по errorlevel. Попробую через find.exe /i "TTL=" », посмотрим разницу.

Iska
16-03-2014, 18:46
Гуллипут, отсюда (http://forum.oszone.net/post-1923440.html#post1923440) и ниже.




© OSzone.net 2001-2012