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

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

Ответить
Настройки темы
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.?

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


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


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

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


Изменения
Автор: Dark Ange1
Дата: 08-10-2010
Доброе время суток!

Подскажите пожалуйста, как получить ТОЛЬКО значение одного параметра из реестра и скопировать его в буфер обмена и/или в текстовый файл?
Например, мне нужно скопировать и записать в текстовый файл(с перезаписью) значение параметра dword Wallpaper_0_FileName из пути реестра HKEY_CURRENT_USER\Software\Binary Fortress Software\DisplayFusion\Wallpaper

Отправлено: 14:35, 07-09-2010

 

Ветеран


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

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


Цитата gora:
Удалите во всех строках выделенное цветом. »
удалил, результат:
Код: Выделить весь код
%c
%b
%a
расчитывал получить
Код: Выделить весь код
Microsoft Windows XP
Service Pack 3
2600.xpsp_sp3_qfe.100216-1510

Отправлено: 20:56, 24-03-2011 | #11



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

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


Аватара для gora

Ушёл из жизни


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

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


А так?
Код: Выделить весь код
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"^|Find /I "BuildLab"`) Do set Build=%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"^|Find /I "CSDVersion"`) Do set Version=%%J
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"^|Find /I "ProductName"`) Do set Product=%%J
CHCP 1251 >Nul
echo %Product%>>txt.txt
echo %Version%>>txt.txt
echo %Build%>>txt.txt

Отправлено: 21:07, 24-03-2011 | #12


Ветеран


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

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


Цитата gora:
А так? »
Скрипт заработал. Пишет первую и последнюю переменную, среднюю %Version% писать не хочет:
Код: Выделить весь код
Microsoft Windows XP
2600.xpsp_sp3_qfe.100216-1510

Отправлено: 21:45, 24-03-2011 | #13


Аватара для gora

Ушёл из жизни


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

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


Цитата sov44:
среднюю %Version% писать не хочет: »
Там в конце "3" стоит, вот об нее и спотыкается. Исправьте последние строки так:
Код: Выделить весь код
>>txt.txt echo %Product%
>>txt.txt echo %Version%
>>txt.txt echo %Build%
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:53, 24-03-2011 | #14


Ветеран


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

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


2 all
Подниму тему

Есть 100%но рабочий вариант, файл 1.cmd
Скрытый текст
Код: Выделить весь код
@Echo Off

Rem http://forum.oszone.net/post-1132000-6.html

For /F "Tokens=2* Delims=	 " %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V ProductName^|Find "REG_SZ"') Do Set OS1=%%B
@Echo %OS1%
Pause
Exit
Но этот вариант не работает на Windows 2000, потому что в Windows 2000 отсутствует файл reg.exe

Пожалуйста, напишите мне 100%но рабочий вариант файла 1.cmd, чтобы работало в Windows 2000

Отправлено: 11:32, 24-01-2015 | #15


Аватара для gora

Ушёл из жизни


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

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


Цитата SharkyEXE:
в Windows 2000 отсутствует файл reg.exe »
А команда ver там работает или ее результат тоже не устраивает?
Код: Выделить весь код
Microsoft Windows XP [Версия 5.1.2600]
-----------------------------------------
Microsoft Windows [Version 6.1.7601]
-----------------------------------------
Microsoft Windows [Version 10.0.9926]

Отправлено: 11:52, 24-01-2015 | #16


Ветеран


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

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


Цитата gora:
команда ver там работает »
В Windows 2000 команда ver работает.
Скрытый текст
Код: Выделить весь код
Microsoft Windows 2000 [Версия 5.00.2195]
Но моя затея, если это возможно, чтобы вывести содержимое параметра ProductName из ключа HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion в Windows 2000

Отправлено: 18:37, 24-01-2015 | #17


Ветеран


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

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


SharkyEXE, используйте WSH.

Отправлено: 18:56, 24-01-2015 | #18


Ветеран


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

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


Цитата Iska:
используйте WSH »
Мне надо, чтобы работало от Windows 2000 (можно даже более ранние выпуски Windows) до Windows 8.1

Если WSH удовлетворяет этому требованию - пожалуйста, напишите мне готовый код, чтобы вывести содержимое параметра ProductName из ключа HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion

Спасибо.

Отправлено: 19:11, 24-01-2015 | #19


Ветеран


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

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


Цитата SharkyEXE:
Мне надо, чтобы работало от Windows 2000 … до Windows 8.1
Если WSH удовлетворяет этому требованию »
Удовлетворяет.

Цитата SharkyEXE:
можно даже более ранние выпуски Windows »
У Вас ещё есть где-то NT 4.0?!

Код: Выделить весь код
WScript.Echo WScript.CreateObject("WScript.Shell").RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
Можете попробовать использовать напрямую в пакетных файлах посредством «mshta.exe» в виде:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`@"%systemroot%\system32\mshta.exe" "javascript:try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(new ActiveXObject('WScript.Shell').RegRead('HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProductName'))};catch (e){};close();"`
) do set sProductName=%%i

if defined sProductName (
	echo [%sProductName%]
) else (
	echo Can't find [ProductName] parameter in [HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion].
)

endlocal
exit /b 0

но могут быть проблемы в новых ОС в случае, если там были заблокированы использованные объекты Automation в IE для зоны Локальный компьютер — это проверяйте на практике.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:43, 24-01-2015 | #20



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Как получить доступ к файлам, папкам и разделам реестра Blast Microsoft Windows Vista 209 27-10-2013 23:01
[решено] Удаление строкового параметра в ключе реестра MKN AutoIt 4 10-04-2011 00:13
CMD/BAT - [решено] Получение значения параметра реестра IfoR Скриптовые языки администрирования Windows 6 08-04-2010 12:54
CMD/BAT - [решено] Получение значения параметра реестра user_123 Скриптовые языки администрирования Windows 3 05-04-2010 13:10
[решено] Как получить имя ветки реестра? garanov AutoIt 11 18-12-2009 12:25




 
Переход