2016-12-12 6 views
0

Я недавно сменил задания, и я получаю грязные руки на некоторых скриптах, которые я всегда хотел узнать. Мне был предоставлен существующий пакетный файл и он хотел его разоблачить. Раньше этот командный файл сканировал IP-адрес, на который вам было предложено ввести. Я хочу изменить это, чтобы закодировать команду на основе списка IP-адресов из текстового файла, только у меня возникают проблемы с этим.Выполнить команду на основе IP-адреса из текстового файла

я понял, что я могу сделать это одним из двух способов:

1) Запустите пакетный файл, который будет получить IP-адрес, а затем запустить 2-ю партию, основанную на IP-адрес этого.

ИЛИ

2) Просто используйте один существующий пакетный файл и изменить его на петлю на основе IP-адрес в каждой строке текстового файла.

Что было бы лучшим способом, и как бы вы выполнили оба?

Для # 1 я попытался это сделать, но я не знаю, как запустить команду на основе того, что я вхожу. Примером этого может быть запуск batch.bat 192.168.1.1, который в batch.bat попытается выполнить ping 192.168.1.1 (или все, что было введено).

+0

Вы должны изменить свой вопрос и добавить свой код – Hackoo

ответ

0

Предположим, что у вас уже есть текстовый файл с именем: IP_List.txt с этим содержимым:

192.168.1.1 
192.168.1.2 
192.168.1.3 
192.168.1.4 
192.168.1.5 
192.168.1.6 
192.168.1.7 
192.168.1.8 
192.168.1.9 
192.168.1.10 
192.168.1.11 
192.168.1.12 
192.168.1.13 
192.168.1.14 
192.168.1.15 
192.168.1.16 
192.168.1.17 
192.168.1.18 
192.168.1.19 
192.168.1.20 
www.google.com 
www.stackoverflow.com 

Вы можете дать попробовать для этого пакетного файла: MultiPingTester.bat

enter image description here

@echo off 
Title Multi-Ping hosts Tester with colors by Hackoo 2016 
call :init 
set "MyFile=IP_List.txt" 
If Not exist %MyFile% goto error 
mode con cols=65 lines=30 
set "LogFile=PingResults.txt" 
If exist %LogFile% Del %LogFile% 
echo(
call :color 0E "  ------- Ping status of targets hosts -------" 1 
echo(
(
    echo ****************************************************** 
    echo PingTest executed on %Date% @ Time %Time% 
    echo ****************************************************** 
    echo(
) > %LogFile% 
Setlocal EnableDelayedExpansion 
for /f "usebackq delims=" %%a in ("%MyFile%") do (
    ping -n 1 %%a | find "TTL=" >nul 
    if errorlevel 1 (
     call :color 0C " Host %%a not reachable KO" 1 & echo Host %%a not reachable KO >>%LogFile% 
    ) else (
     call :color 0A " Host %%a reachable OK" 1 & echo Host %%a reachable OK >>%LogFile% 
    ) 
) 
EndLocal 
Start "" %LogFile% 
pause>nul & exit 
::************************************************************************************* 
:init 
prompt $g 
for /F "delims=." %%a in ('"prompt $H. & for %%b in (1) do rem"') do set "BS=%%a" 
exit /b 
::************************************************************************************* 
:color 
set nL=%3 
if not defined nL echo requires third argument & pause > nul & goto :eof 
if %3 == 0 (
    <nul set /p ".=%bs%">%2 & findstr /v /a:%1 /r "^$" %2 nul & del %2 2>&1 & goto :eof 
) else if %3 == 1 (
    echo %bs%>%2 & findstr /v /a:%1 /r "^$" %2 nul & del %2 2>&1 & goto :eof 
) 
exit /b 
::************************************************************************************* 
:error 
mode con cols=70 lines=3 
color 0C 
cls 
echo(
echo  ATTENTION !!! Check if the file "%MyFile%" exist ! 
pause>nul & exit 
::************************************************************************************* 

 Смежные вопросы

  • Нет связанных вопросов^_^