Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Элементы "массива" в цикле

Ответить
Настройки темы
CMD/BAT - [решено] Элементы "массива" в цикле

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


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

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


В переменных 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
)
Что я делаю не так? И как сделать, чтобы работало?

Заранее спасибо за помощь.

Отправлено: 08:40, 21-01-2024

 

Ветеран


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

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


Заканчивайте себя мучать батниками, вы блоке for устанавливаете переменную и прямо в нем же пытаетесь ее вывести

Код: Выделить весь код
set dn=0
for /F %%i in (basedate.log) do (
    set /a dn+=1 
    call echo %%name!dn!%% %%i
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:19, 21-01-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


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


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

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


Цитата Foreigner:
Заканчивайте себя мучать батниками »
Я пытаюсь начать ими наслаждаться...

Цитата Foreigner:
call echo %%name!dn!%% %%i »
А где можно почитать хороший разбор про все эти "%", "%%" и "!"? А то пытаюсь их применять на интуитивном уровне и чувствую, что интуиция меня подводит. Хотелось бы базовых знаний...

Отправлено: 15:16, 21-01-2024 | #3


Ветеран


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

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


Цитата TonyMil:
А где можно почитать хороший разбор про все эти »
Не знаю, в свое время читал только справку и форумы.

Код: Выделить весь код
set /?
setlocal /?
Цитата TonyMil:
Я пытаюсь начать ими наслаждаться... »
Мазохизм тоже вызывает наслаждение, особенно при работе с текстом. Лучше изучайте PowerShell или другие ЯП.

Отправлено: 15:27, 21-01-2024 | #4


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


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

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


Цитата Foreigner:
Лучше изучайте PowerShell или другие ЯП. »
PS по условиям задачи не прокатывает. С другими ЯП всё в порядке, но они тоже не подходят. Там всё непросто с требованиями заказчика.

Огромное спасибо! Всё заработало.

Отправлено: 15:33, 21-01-2024 | #5


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата TonyMil:
А где можно почитать хороший разбор про все эти "%", "%%" и "!"? А то пытаюсь их применять на интуитивном уровне и чувствую, что интуиция меня подводит. »
А.В. Попов Командная строка и сценарии Windows

-------
scio me nihil scire. Ѫ


Отправлено: 21:19, 21-01-2024 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Элементы "массива" в цикле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Как восстановить элементы меню "Найти" в кнопке "Пуск"? fsab Microsoft Windows 2000/XP 0 03-04-2015 06:14
CMD/BAT - [решено] Множественная проверка в цикле (IF) с оперратором "ИЛИ"(OR) Nuclears Скриптовые языки администрирования Windows 7 29-12-2011 13:13
Интерфейс - настройка меню Пуск вкладка "дополнительно" отсутствуют элементы... edition7 Microsoft Windows 2000/XP 6 13-01-2011 03:18
Разное - [решено] Нужно убрать список "прежние элементы" osip Microsoft Windows 2000/XP 4 19-02-2010 19:02
[решено] Как присвоить элементы массива в "перетасованном" виде другому массиву? evg64 AutoIt 3 27-09-2009 14:09




 
Переход