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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » как бы добавить в переменные имя ключа реестра и его значение ?

Ответить
Настройки темы
как бы добавить в переменные имя ключа реестра и его значение ?

Старожил


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

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


в общем есть ключи реестра
Код: Выделить весь код
Windows Registry Editor Version 5.00    
[HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles]  
"D:\\1c\\conf\\proekt\\"="proekt"  
"D:\\1c\\conf\\torg\\DemoDB\\"="Конфигурация \"Торговля+Склад\" Демо"  
"D:\\1c\\conf\\bir\\"="bir"  
"D:\\1c\\conf\\torg\\DB\\"="Конфигурация \"Торговля+Склад\""  
"D:\\share\\1SBDemo\\"="Информационная База #1"  
"D:\\Копия союзOld\\2005\\"="Информационная База #2"  
"D:\\share\\496\\"="496"  
"D:\\1c\\tutor\\"="tutor"
мне бы надо получить пути (к примеру D:\\1c\\conf\\proekt\\) и названия (к примеру "proekt") в разные переменные

пытаюсь сделать это командой REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles

и сделать по тому же принципу как в http://forum.oszone.net/thread-67920.html

но почему то не выходит.

поидея след. строка должна бы выдать путь , но она почему-то выдает только часть его

for /f "TOKENS=1 DELIMS=REG_SZ" %%A in ('netsh interface show interface ^| find "REG_SZ"') do echo %%A %%B %%C %%D %%E %%F %%G >> ___1.tmp

Отправлено: 11:28, 15-04-2008

 

Аватара для hasherfrog

Старый параноик


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

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


Может, надо netsh interface show interface заменить на что-то типа REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles?
Я его-то не понял... :-/

Отправлено: 12:01, 15-04-2008 | #2



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

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


Аватара для hasherfrog

Старый параноик


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

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


Если да, то можно начать плясать вот от такого:
Код: Выделить весь код
@for /f "tokens=1,3" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles ^| find "REG_SZ"') do @echo %%A %%B

Отправлено: 12:19, 15-04-2008 | #3


Старожил


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

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


Цитата hasherfrog:
Может, надо netsh interface show interface заменить на что-то типа REG QUERY HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles?
Я его-то не понял... :-/ »
тут я опречатался .

но всеравно получается не то , к примеру пути с program files получаются только до program

Отправлено: 14:19, 15-04-2008 | #4


Аватара для hasherfrog

Старый параноик


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

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


>> к примеру пути с program files получаются только до program

Это из-за использования пробела в качестве разделителя. Это можно решить, используя "звёздочку *" после "tokens="
Например:
Код: Выделить весь код
@for /f "tokens=1,2*" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\7-zip ^| find "REG_SZ"') do @echo %%A %%C
В этом случае имя ключа идёт в %%A, "REG_SZ" идёт в %%B (не печатается), остальное (путь, например) - в %%C.

Другое дело, что если пробел может присутствовать и в левой части, в имени ключа (что-то я там у Вас такое вижу). Я изначально предполагал, что этого не будет (если левая часть перейдёт в имя переменной в окружении, то как оно может иметь пробел?). Поэтому я сейчас не смогу ответить, как бы так всё оформить.

Может, VBS? Вроде там проще должно быть...

Отправлено: 15:19, 15-04-2008 | #5


Старожил


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

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


а почему в качестве разделителя не использовать бы REG_SZ ?

Отправлено: 10:20, 16-04-2008 | #6


Аватара для hasherfrog

Старый параноик


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

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


>> а почему в качестве разделителя не использовать бы REG_SZ ?

Можно. Только тут один ньюанс. После разбивки через "REG_SZ" вы получите в переменные кучу пробелов, которые как-то нужно убирать... :[ Сравните вывод:
Код: Выделить весь код
@for /f "tokens=1,2*" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\7-zip ^| find "REG_SZ"') do @echo %%A %%C

@for /f "tokens=1* delims=REG_SZ" %%A in ('REG QUERY HKEY_CURRENT_USER\Software\7-zip ^| find "REG_SZ"') do @echo %%A %%B
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:36, 16-04-2008 | #7


Старожил


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

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


очень странное что-то получается.
после отработки этой сроки (с >> ___1.tmp ) в ___1.tmp получилось вот что
Код: Выделить весь код
    Path	 	C:\Program Files\7-zip 
    Lang	 	ru
но если выделить ,скопировать , а потом вставить в командную строку Path с пробелами до и после , то в командную строку встовляется вот это ( Path "Application Data") .
Откуда там берется "Application Data" ?

я кстати ничего против VBS не имею , просто я ничего вних не понимаю

Отправлено: 20:11, 16-04-2008 | #8


Googler


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

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


тут есть еще один подводный камень - русские слова сохранятся крякозябками так как REG выводит в 1251, а CMD использует 866-ю кодировку... поэтому лучше сразу засветить цель всего мероприятия и требования, так как могут потребоваться дополнительные CMD-утилитки... или может действительно перейти на WSH?

Отправлено: 05:16, 17-04-2008 | #9


Старожил


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

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


Да цель мероприятия , сделать скрипт для автоматической установки отчетности в 1с , для этого надо определить пути к базам и их названия . Эти пути есть в реестре , в тех ключах которые я давал в самом начале. В остальном скрипт будет достаточно прост ибо надо просто скопировать нужные файлы в базы.

Отправлено: 10:09, 17-04-2008 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » как бы добавить в переменные имя ключа реестра и его значение ?

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как получить имя ветки реестра? garanov AutoIt 11 18-12-2009 12:25
VBS/WSH/JS - Как поменять значение реестра? rromms Скриптовые языки администрирования Windows 2 16-09-2009 19:01
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH 13Demon Скриптовые языки администрирования Windows 1 10-02-2009 09:47
Как создать переменную, имя которой такоеже как значение + несколько латин. символов? E-mail Вебмастеру 12 26-11-2005 10:14
как определить ip у пользователя , ели знаешь только его имя djoniAg Сетевые технологии 7 30-05-2005 19:50




 
Переход