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

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

Ответить
Настройки темы
CMD/BAT - [решено] Выделить в переменные Имена пользователей

Старожил


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


Конфигурация

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


Подскажите возможно ли сделать так, что бы вывести список пользователей из диска C:\Users в переменную, сложность в том, что это надо сделать из WinPE, плюс в том, что в WindowsPE диск с рабочей Windows 7 всегда отображается диском C:\
Сейчас в батнике вручную вписываю имя пользователя простой командой SET /P, но хотелось бы не смотреть каждый раз имена пользователей, и вписывать их вручную, а выбрать из показанного списка, например было бы так:
Выберите пользователя:
Менеджер
Продавец и т.д., то есть перечислен список пользователей из C:\Users, и выбрав вариант с нужным пользователем, его имя записалось в переменную, что бы батник продолжил дальше работать с этим пользователем.
Подскажите, пожалуйста, как это сделать?

Отправлено: 00:21, 27-11-2018

 

Ветеран


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

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


Valek271183, начните с того — зачем это Вам нужно. Ибо имя каталога в C:\Users — далеко не всегда <===> Имя пользователя.

Проверьте, работает ли в WinPE команда choice.exe?
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:18, 27-11-2018 | #2



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

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


Старожил


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

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


C:\Users на всех компьютерах которые успел проверить
choice.exe в PE работает

Отправлено: 14:17, 27-11-2018 | #3


Ветеран


Contributor


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

Профиль | Отправить 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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход