![]() |
Проблема с переходом к определенному ключу реестра
Всем доброго времени суток в которое Вы читаете данный пост!
http://forum.oszone.net/thread-184844.html здесь я нашел код для записи значения из реестра в .txt файл. Код:
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKCU\Software\Binary Fortress Software\DisplayFusion\Wallpaper"^|Find /I "Wallpaper_0_FileName"`) Do Echo %%J>text.txt Код:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{1A3EB677-F210-43AE-85B9-C6964FF59BF6}\0000 Мне нужно, чтобы вместо {1A3EB677-F210-43AE-85B9-C6964FF59BF6} батник просто проходил в первый подраздел раздела VIDEO, поскольку на разных компьютерах эти идентификаторы будут разные, а мне нужно, чтобы файл работал на всех компах с Win7. Помогите, пожалуйста! |
VoinLuny, например, так:
Код:
@echo off |
Iska, благодарю за решение, а можно попросить комментарии? Просто я не совсем понимаю принцип работы оператора FOR даже читая мануал по нему, хотелось бы человеческим языком, чтобы понять, что пишу. Заранее спасибо!
|
1. Исполняется команда:
Код:
reg.exe query "%sPath%" Код:
find.exe "{" 3. Вывод команды «find.exe» передаётся на построчный разбор команде «for /f»: * чтобы указать, что мы разбираем именно вывод команды, а не содержимое файла, внутри скобок мы используем апострофы («'…'»), внутри которых мы указываем саму команду (в данном случае — несколько команд, объединённых конвейером); * чтобы символ конвейера был отнесён интерпретатором не к самой команде «for /f», а к указанным для исполнения командам, мы его экранируем символом «^»; * дабы строки воспринимались цельной лексемой — мы указываем атрибутом «delims» отсутствие разделителей лексем [только сейчас увидел и поправил в предыдущем коде свою очередную тупую описку — двойной знак равенства при атрибуте «delims»]. 4. Результаты разбора будут доступны внутри цикла разбора «for /f» через указанную переменную «%%i». 5. После разбора первой же строки мы безусловно переходим на указанную метку «:Teminate», тем самым обрывая разбор. |
Iska, объяснил доступно, спасибо! :clapping:
Последний момент: Когда я выполнил код который ты скинул - реестр открылся в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Control\VIDEO\{1A3EB677-F210-43AE-85B9-C6964FF59BF6}\0000, но я не заметил в твоем коде упоминания последнего подраздела (0000). Как так? |
Команда:
Код:
reg.exe query "<путь>" |
Всё понял, огромное спасибо!!!
|
При выполнении скрипта появляется непонятный раздел (его нет в реестре) и соответственно, ошибка. Полтергейст какой-то. :) Поясните, что за раздел и как убрать сообщение об ошибке.
Windows XP SP3 , Office 2003 Код:
@ECHO OFF |
Время: 00:06. |
Время: 00:06.
© OSzone.net 2001-