Как прочитать ips в файле и назначить каждому переменную - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть файл ip.txt с набором ips, по одному на строку, и более 400 ips, как показано ниже

10.xx.xx.111
10.xx.xx.113

Как я могу назначить каждый из них отдельной переменной, например ip1 = firstстрока ip, ip2 = вторая строка ip и т. д. на последнем ip.Файл не имеет разделителя как такового, просто один ip на строку.

Я попробовал следующую партию

@echo off
echo.
for /f "tokens=1*" %%A in (ip.txt) Do Set "%%A=%%B"
set | find /i "10="

, но не сработало.Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 15 февраля 2019

Ну, насколько я понимаю, основываясь на ваших комментариях, вы просто хотите, чтобы такой простой цикл выполнил одну задачу для нескольких перечисленных строк в файле:

@for /f %%i in (ip.txt) Do @echo %%i

Что будетвозьмите каждый ip и сделайте что-нибудь с ним, в данном случае echo it.

Когда вам, очевидно, нужно будет сделать что-то еще с IP, например, пинговать его, подключиться к нему и т. д., например:

@for /f %%i in (ip.txt) Do @ping %%i

Или сделайте для него несколько элементов в блоке кода:

@echo off
for /f %%i in (ip.txt) Do (
      echo %%i
      ping %%i
      nslookup %%i
)

Если вы ДЕЙСТВИТЕЛЬНО хотите установить его как проверяемый, который ДЕЙСТВИТЕЛЬНО здесь не нужен, вы можете сделать это,но для использования внутри блока кода с такими вещами, как echo и т. д., вам потребуется delayedexpansion:

@echo off
setlocal enabledelayedexpansion
for /f %%i in (ip.txt) Do (
      set "ip=%%i"
      echo !ip!
      ping !ip!
      nslookup !ip!
)
...