Показать полную графическую версию : [решено] Элементы "массива" в цикле
В переменных name1, name2, ... name9 хранятся некие текстовые значения. Если их выводить в цикле "for /L", всё работает:
for /L %%i in (1,1,9) do echo !name%%i!
А если я пытаюсь выводить их в цикле "for /F", заведя собственный счётчик, то не работает:
set dn=0
for /F %%i in (basedate.log) do (
set /a dn+=1
echo !name%dn%! %%i
)
Что я делаю не так? И как сделать, чтобы работало?
Заранее спасибо за помощь.
Foreigner
21-01-2024, 14:19
Заканчивайте себя мучать батниками, вы блоке for устанавливаете переменную и прямо в нем же пытаетесь ее вывести
set dn=0
for /F %%i in (basedate.log) do (
set /a dn+=1
call echo %%name!dn!%% %%i
)
Заканчивайте себя мучать батниками »
Я пытаюсь начать ими наслаждаться...
call echo %%name!dn!%% %%i »
А где можно почитать хороший разбор про все эти "%", "%%" и "!"? А то пытаюсь их применять на интуитивном уровне и чувствую, что интуиция меня подводит. Хотелось бы базовых знаний...
Foreigner
21-01-2024, 15:27
А где можно почитать хороший разбор про все эти »
Не знаю, в свое время читал только справку и форумы.
set /?
setlocal /?
Я пытаюсь начать ими наслаждаться... »
Мазохизм тоже вызывает наслаждение, особенно при работе с текстом. Лучше изучайте PowerShell или другие ЯП.
Лучше изучайте PowerShell или другие ЯП. »
PS по условиям задачи не прокатывает. С другими ЯП всё в порядке, но они тоже не подходят. ;) Там всё непросто с требованиями заказчика.
Огромное спасибо! Всё заработало.
А где можно почитать хороший разбор про все эти "%", "%%" и "!"? А то пытаюсь их применять на интуитивном уровне и чувствую, что интуиция меня подводит. »
А.В. Попов Командная строка и сценарии Windows
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.