|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Выделить в переменные Имена пользователей |
|
CMD/BAT - [решено] Выделить в переменные Имена пользователей
|
Старожил Сообщения: 489 |
Подскажите возможно ли сделать так, что бы вывести список пользователей из диска C:\Users в переменную, сложность в том, что это надо сделать из WinPE, плюс в том, что в WindowsPE диск с рабочей Windows 7 всегда отображается диском C:\
Сейчас в батнике вручную вписываю имя пользователя простой командой SET /P, но хотелось бы не смотреть каждый раз имена пользователей, и вписывать их вручную, а выбрать из показанного списка, например было бы так: Выберите пользователя: Менеджер Продавец и т.д., то есть перечислен список пользователей из C:\Users, и выбрав вариант с нужным пользователем, его имя записалось в переменную, что бы батник продолжил дальше работать с этим пользователем. Подскажите, пожалуйста, как это сделать? |
|
Отправлено: 00:21, 27-11-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Valek271183, начните с того — зачем это Вам нужно. Ибо имя каталога в C:\Users — далеко не всегда <===> Имя пользователя.
Проверьте, работает ли в WinPE команда choice.exe? |
Отправлено: 05:18, 27-11-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 489
|
Профиль | Отправить PM | Цитировать C:\Users на всех компьютерах которые успел проверить
choice.exe в PE работает |
Отправлено: 14:17, 27-11-2018 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Valek271183,
Не гарантирую для PE, не Choice
@Echo Off cls Set "DUsers=C:\Users" Set Ext="Public" Set /A N=0 FOR /D %%d IN ("%DUsers%\*.*") DO Call :Names "%%~nd" If N==0 Exit /B 1 :Begin 2>nul Set /A NUser=%U% cls Echo ===== Список пользователей FOR /L %%i IN (1,1,%N%) DO Call Echo %%i %%N%%i%% SET /P i=Выход=Q, Номер пользователя= If /I "%i%"=="Q" Exit /B 2>nul Set /A NUser=%i% If %NUser% LSS 1 GoTo :Begin If %NUser% GTR %N% GoTo :Begin Call Set "NUser=%%N%NUser%%% Echo %NUser% pause GoTo :Eof :Names FOR %%i IN (%Ext%) DO If /I "%%~i"==%1 Exit /B Set /A N+=1 Set "N%N%=%~1" Exit /B Не гарантирую для PE, Choice, не более 9 пользователей
@Echo Off cls Set "DUsers=C:\Users" Set Ext="Public" Set /A N=0 Set "Spisok=Q" Set "Element=Q=Выход" FOR /D %%d IN ("%DUsers%\*.*") DO Call :Names "%%~nd" If N==0 Exit /B 1 Echo ===== Выберите пользователя CHOICE /C %Spisok% /M "%Element%" If %ErrorLevel% EQU 1 Exit B 0 Set /A NUser=%ErrorLevel%-1 Call Set "NUser=%%N%NUser%%% Echo "%NUser%" pause GoTo :Eof :Names FOR %%i IN (%Ext%) DO If /I "%%~i"==%1 Exit /B If %N% EQU 9 Exit /B 1 Set /A N+=1 Set "Spisok=%Spisok%%N%" Set "Element=%Element% %N%=%~1" Set "N%N%=%~1" Exit /B Может быть сформирован список нерассматриваемых папок в переменной Ext. Сейчас там одна папка: Set Ext="Public" Возможно несколько папок: Set Ext="Public" "All Users" Default "Default User" "Все пользователи" |
------- Последний раз редактировалось megaloman, 27-11-2018 в 19:16. Отправлено: 17:15, 27-11-2018 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Одинаковые имена пользователей - подключить в домен | R.i.m.s.k.y. | Windows Server 2008/2008 R2 | 9 | 10-02-2012 15:25 | |
как загнать имена всех "Подключение по локальной сети" в переменные ? | mitiya | Сетевые технологии | 10 | 30-06-2010 22:12 | |
В диспетчере задач не отображаются имена пользователей | Nasgool | Лечение систем от вредоносных программ | 2 | 26-03-2009 08:51 | |
имена пользователей выглядят по разному | farlow | Microsoft Windows NT/2000/2003 | 5 | 11-05-2007 14:01 |
|