Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 7
Благодарности: 1

Профиль | Отправить PM | Цитировать


Я вроде разобрался сам. Но всёравно хотел бы выслушать предложение по оптимизации:

Код: Выделить весь код
@echo off
Set max=15
:L0
if `%1`==`2` (goto L3) else (
if `%1`==`1` (goto L1) else (
Set check=1 & Set lv1=192.168 & Set lv2=1)
)

for /L %%i in (0,1,%max%) do (
echo %lv1%.%%i.%lv2%
cmd /v:on /c %0 %check% %lv1% %lv2% %%i)
goto end

:L1
if `%4`==`%max%` (set check=2 & goto L2)
ping -a -w 50 -n 1 %2.%4.%3>nul
if ErrorLevel 1 (goto end)
echo !%4>>iplv.txt
goto end

:L2
FOR /F %%j in (iplv.txt) do (
for /L %%z in (0,1,%max%) do (
echo %2.%%j.%%z
cmd /v:on /c %0 %check% %lv1% %lv2% %%z %%j)
)
goto end

:L3
Set ip=%%j
ping -a -w 50 -n 1 %2.%5.%4>nul
if ErrorLevel 1 (goto end)
echo %2.%5.%4>>ip.txt
goto end

:End
exit
Думаю можно сделать параметры: "2 цифры ip" "max значение 3й цифры" "max значение 4й цифры"
Например CMD: scan.bat 192.168 20 30

Отправлено: 14:04, 13-02-2011 | #2