Я пытаюсь назначить переменную на основе ее значения переменной цикла, так что в конце цикла я могу выделить каждый результат в одной строке. Общая команда - это nslookup с несколькими запрошенными серверами. Я хватаю начало результата имени (до первой точки), чтобы отобразить результаты на основе 5-секундных задержек. Я оставил во второй версии команды, которую я тоже пробовал, но remed. Я не могу заставить цель заполнять и эхо.Использовать переменную цикла как часть новой переменной в пакетном сценарии Windows
setlocal enabledelayedexpansion
For %%s IN (111.111.0.2, 111.111.0.3, 111.111.9.2, 111.111.9.3) do (
for /L %%l IN (1,1,5) DO (
set Target=%e%%l.testedge.test.tld%
for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do set %Result%%l%=%%G
REM set Result%%l=%for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do echo %%G%
REM for /f "tokens=2 delims=:." %%G IN ('nslookup e%%l.testedge.test.tld %%s ^|find "Name:"') do set !Result%%1!=%%G
ping 1.1.1.1 -n 1 -w 5000 > nul
)
echo %%s,%Target%,%Result1%,%Result2%,%Result3%,%Result4%,%Result5%
)
Результаты выглядят как его прокси-сервера
Name: e1.testedge.test.tld
Name: user-data.e1.testedge.test.tld
Name: user-data.e1.testedge.test.tld
Так цикл захватывает e1, пользовательские данные и пользовательские данные. Мне нужно назначить им постоянную переменную для эха в конце цикла. Я планирую добавить к csv, чтобы мы могли открыть форму в виде электронных таблиц (поиск более 70 адресов через 20 серверов) для просмотра. Я хотел бы, чтобы выход был как
Nameserver Target 1st 2nd 3rd 4th 5th
111.111.0.2,e1.testedge.test.tld,e1,user-data,user-data,user-data,user-data
111.111.0.2,e2.testedge.test.tld,e2,user-data,user-data,user-data,user-data
111.111.0.2,e3.testedge.test.tld,e3,user-data,user-data,user-data,user-data
111.111.0.2,e4.testedge.test.tld,e4,user-data,user-data,user-data,user-data
ПРИМЕЧАНИЕ. Я изменил результаты nslookup, чтобы точно представить ситуацию. – user3071645