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

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

Ответить
Настройки темы
CMD/BAT - Вывод данных командой REG QUERY

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


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


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

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


Здравствуйте.
Возможно ли сделать так что бы результатом работы команды REG QUERY был только полный адрес раздела и параметр, без типа и значения.
Пример:
Что выводится:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager
ColorName REG_SZ NormalColor
Что нужно:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager
ColorName
Вывод осуществляется в текстовый файл.

Отправлено: 15:07, 15-03-2015

 

Ветеран


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

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


codi28, поясните — в чём состоит глубинный смысл сего действа? Поскольку в «reg.exe query» Вы и так указываете те самые раздел и параметр?

Отправлено: 16:51, 15-03-2015 | #2



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

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


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


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

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


Смысл в том что параметр нужно искать в разделе HKEY_USERS и выводить то что нашлось в файл из которого потом будут браться пути реестра для удаления
Пример команды для поиска: REG QUERY HKU /S /F qifruvdfug > C:\FILE.TXT

Отправлено: 16:24, 16-03-2015 | #3


Аватара для mariolast

Ветеран


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

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


А не подскажете

:: Извлекаем из реестра полный путь к папке, содержащей профили пользователей
for /f "usebackq tokens=3,3* delims== " %%i in (`reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfilesDirectory`) do set profiles=%%i

На 7-ке нормально считывает, а на XP только слово settings считывается. Что поменять, чтобы и на 7 и на XP правильно работало?

Отправлено: 17:12, 19-03-2015 | #4


Ветеран


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

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


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2* delims=	 " %%i in (
	`reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v "ProfilesDirectory"`
) do set sProfilesDirectory=%%j

echo [%sProfilesDirectory%]

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:31, 19-03-2015 | #5


Аватара для mariolast

Ветеран


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

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


Спасибо, работает.
А не подскажете еще заодно, как присвоить переменной значение секции в INI файле?
Читать то он читает и на экран выводит.
Попытался сделать так, но не получилось, за пределами локали переменная %ini.Value% уничтожается.
Соответственно %PASS% пустое.

echo off
setlocal enableextensions enabledelayedexpansion
set inifile=profiles.ini

SetLocal
call :ini.ReadKey "%inifile%" "[Profile0]" 1 PATH 1
echo. ini.Value!
endlocal&set PASS=%ini.Value%
echo %PASS%
pause
)

exit /b 0

:ini.ReadKey
::%1 - путь к файлу
::%2 - имя секции
::%3 - порядковый номер секции (если имеются одноименные), иначе указывайте 1
::%4 - имя параметра
::%5 - порядковый номер параметра (если имеются одноименные), иначе указывайте 1
for /f "UseBackQ delims=" %%s in ("%~1") do (
if Defined BeginRead (
for /f "tokens=1* delims==" %%k in ("%%s") do (
set ini.Key.Name=%%k
call :TrimSpaces "!ini.Key.Name!" " " "ini.Key.Name"
if /i "!ini.Key.Name!"=="%~4" (
Set /A ini.Keys.Count+=1
if !ini.Keys.Count!==%~5 (
Set ini.Value=%%l
call :TrimSpaces "!ini.Value!" " " "ini.Value"
Exit /B
)
)
)
) else (
set ini.Section.Name=%%s
call :TrimSpaces "!ini.Section.Name!" " " "ini.Section.Name"
if /i "!ini.Section.Name!"=="%~2" (
set /A ini.Sections.Count+=1
if !ini.Sections.Count!==%~3 (
Set BeginRead=true
)
)
)
)
Exit /B

Последний раз редактировалось mariolast, 19-03-2015 в 19:01.


Отправлено: 18:03, 19-03-2015 | #6


Ветеран


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

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


А зачем Вам там второй setlocal/endlocal?

Отправлено: 00:26, 20-03-2015 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Вывод данных в несколько столбцов sov44 Скриптовые языки администрирования Windows 5 29-06-2011 17:31
Вывод данных из массив Rahaka Вебмастеру 0 21-07-2010 18:45
Вывод данных их массива venuko Вебмастеру 10 02-05-2010 17:19
XSL многократный вывод данных Lexxx_HU Вебмастеру 1 27-02-2007 11:47
Постарничный вывод данных, помогите. slaine Вебмастеру 3 16-06-2005 02:22




 
Переход