BVV63
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору wolf0425 Ну, в приведённом Вами примере счётчик наверное совсем не нужен. Очевидно, я его и возьму на вооружение. Я пытался сделать так: Код: Set RemoteUsersCounter=0 SetLocal EnableDelayedExpansion For /F "Tokens=* UseBackQ" %%A In (`Net LocalGroup "Remote Desktop Users" ^| Find /I "\"`) Do ( Set /A RemoteUsersCounter+=1 echo !RemoteUsersCounter! Set RemoteUser_%%A=%%A пробовал также другой вариант Set RemoteUser_!RemoteUsersCounter!=%%A echo !RemoteUser_RemoteUsersCounter! ) EndLocal | Первое эхо отрабатывает как надо. Второе в обоих случаях - нет. Переменная не создаётся. И я хочу ПОНЯТЬ: почему? Добавлено: Немножко наврал. Оказалось что я в обоих случаях использовал echo !RemoteUser_RemoteUsersCounter! В первом проверку надо было осуществить через Set. Переменные создаются, но на одну меньше, чем нужно. Правда, ещё и лишняя создаётся, сейчас буду разбираться. ... А нет, число-то верное, просто не туда взглянул. ...Всё, и причину дубликации тоже выяснил. А почему во втором случае Set RemoteUser_!RemoteUsersCounter!=%%A переменная не создаётся? Добавлено: Добился, что всё работает, но тут выяснилось, что выполняется-то это под SetLocal, так что я запарюсь вытаскивать переменные. Эк, лоханулся! Ладно, попробую способ, предложенный wolf0425. Добавлено: А с другой стороны, если счётчик не нужен, то оставить всё как есть, а SetLocal - убрать. Что-й то у меня сегодня "творческие страдания" . | Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 11:29 02-07-2010 | Исправлено: BVV63, 12:15 02-07-2010 |
|