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

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

Ответить
Настройки темы
CMD/BAT - Вопрос об операции FOR

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


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

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


Господа, не ругайте за нубство, но помогите прояснить следующую ситуацию. Если выполняется операция FOR, то название переменной, участвующей в цикле, обычно будет иметь вид "%%a", или "%%b", или "%%c" и т.д. Но также (как выяснилось на практике), вместо букв можно использовать цифры: "%%1", "%%2" и т.д. Тем не менее, цифры в переменных, сколько я не встречал примеров с операцией FOR, никогда не используются, но всегда фигурируют буквы. Связано ли это с какими-либо ограничениями, либо с чем-то еще?

Отправлено: 19:57, 11-12-2018

 

Ветеран


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

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


Цитата Browning Zed:
Но также (как выяснилось на практике), вместо букв можно использовать цифры: "%%1", "%%2" и т.д. »
Переменные вида %0-%9 зарезервированы для приёма переданных скрипту/процедуре параметров (причём %0 — ссылка на сам пакетный файл или метку процедуры:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

echo [%0]
call :SampleSub

endlocal
exit /b 0

:SampleSub
	echo [%0]
	exit /b

).

P.S. В принципе, Вы можете получить доступ к переменным цикла разбора вида %%1-%%9 как к токенам, но это надо уж очень постараться.

Отправлено: 22:21, 11-12-2018 | #2



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

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


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


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

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


Цитата Iska:
P.S. В принципе, Вы можете получить доступ к переменным цикла разбора вида %%1-%%9 как к токенам, но это надо уж очень постараться. »
Да в том-то и соль, что даже не старался, отчего и возник вопрос. Ради примера:

Код: Выделить весь код
For /f "tokens=3" %%1 in ('reg query "ветка_реестра" /v "параметр_реестра"') do echo %%1
будет возвращать то же значение, что и:

Код: Выделить весь код
For /f "tokens=3" %%a in ('reg query "ветка_реестра" /v "параметр_реестра"') do echo %%a
Цитата Iska:
Переменные вида %0-%9 зарезервированы для приёма переданных скрипту/процедуре параметров (причём %0 — ссылка на сам пакетный файл или метку процедуры: »
Спасибо за пояснение. А не будете так добры ссылочку кинуть по этому вопросу, чтобы была возможность поштудировать на досуге?

Отправлено: 22:58, 11-12-2018 | #3


Ветеран


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

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


Цитата Browning Zed:
ссылочку кинуть по этому вопросу »
если разговор о параметрах, то немало можно посмотреть в справке к команде: call /?

Отправлено: 01:24, 12-12-2018 | #4


Ветеран


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

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


Цитата Browning Zed:
будет возвращать то же значение, что и: »
Это как бы логично — и там, и там переменной цикла присваиваются одни и те же значения. Но лучше ограничивать себя использованием здесь буквенных переменных (не забывая о том, что в этом случае они ещё и регистрозависимы).

Цитата Browning Zed:
А не будете так добры ссылочку кинуть по этому вопросу, чтобы была возможность поштудировать на досуге? »
Да особо как-то и нечего посоветовать, такого всеобъемлющего и доступного, увы. А так — ряд забавных или необычных деталей можно почерпнуть на SS64: An A-Z Index of the Windows CMD command line | SS64.com (но это, понятно, уже не для начального обучения).

Отправлено: 02:57, 14-12-2018 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проясните об операции замены накопителя с обычного на SSD. silalex Ноутбуки 3 21-01-2014 22:26
Интерфейс - Вопрос об устройстве. shivaka Тест-форум 1 07-12-2011 13:27
Вопрос об охлаждении (кулерах). silalex Флейм 9 23-01-2010 19:27
Вопрос об ответственности в Сети Дмитрий_7 Хочу все знать 20 03-11-2009 03:45
Вопрос об очередности monoid Хочу все знать 2 12-08-2003 03:00




 
Переход