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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Ответить
Настройки темы
[решено] как добавить путь к текущей директории в reg файл из bat файла ?

Старожил


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

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


смысл вот в чем :
для перепаковки программы беру ее ветку реестра , а там в некоторых ключах прописан путь к той папке куда установлена программа.
Соответственно для того чтобы перепакованая прога могла ставится куда угодно надо в reg файле пред его запуском заменить путь.
Сначала мне это козалось не сложной задачей и я сделал следующие:

Взял reg (install.reg) файл заменил в нем абсолютный путь (к примеру c:\programs\prog) на просто слово instPath получилось примерно следующие

Код: Выделить весь код
Windows Registry Editor Version 5.00    

[HKEY_LOCAL_MACHINE\SOFTWARE\ABC]    
[HKEY_LOCAL_MACHINE\SOFTWARE\ABC\prog]  

"Install_Path"="instPath\\folder"
потом написал батник следующего вида

Код: Выделить весь код
copy install.reg tempinstall.reg

CHGSTR.EXE instPath %cd% tempinstall.reg

regedt32.exe /s tempinstall.reg
и казалось бы все должно работать, но увы . Дело в том что в reg файле почему-то пути идут с "\\" а %cd% выдает туь с "\" и в результате
путь в tempinstall.reg выглядит как c:\programs\prog\\folder , а должен как c:\\programs\\prog\\folder .

В таком простом примере как я привел конечно проще задать путь командой REG напрямую в реестр, но все же в тех случаях когда путей значительно больше было бы гораздо удобней пользоваться вышеуказанным способом , но вот как из c:\programs\prog\\folder получить c:\\programs\\prog\\folder я не знаю.

Отправлено: 01:47, 18-03-2008

 

Аватара для Baw17

[OVER]Baw17


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

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


используйте Переменные среды

-------
U/\/@┬┬ﻉ/\/Ð ﻉ Й Team
Мой личный Блокнот
Не оказываю техподдержку через систему личных сообщений, почту и ICQ
http://2ip.ru/bar/ip10.gif
Best Regards [Over]Baw17


Отправлено: 08:37, 18-03-2008 | #2



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

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


Старожил


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

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


Baw17, И как это мне поможет ? мне теперь для каждой программы переменную создовать и постоянно ее хранить ?
Это хорошо, если я устанавливаю в програм файлс ,а если я устанавливаю даже не на систем драйв ?

Отправлено: 19:05, 18-03-2008 | #3



Moderator


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

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


Цитата mitiya:
а %cd% выдает туь с "\"
Замена одинарных \ на двойные:
Код: Выделить весь код
Set CD2=%CD:\=\\%
Echo %CD2%
Код: Выделить весь код
Set /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:23, 18-03-2008 | #4


Старожил


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

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


О , Спасибо !!! все ок.

Отправлено: 22:13, 18-03-2008 | #5


Аватара для werwolf-basic

Старожил


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

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


А если через reg.exe в параметре /v указать "%~d0" так и будет в реестре

"Install_Path"="%~d0" да?

Отправлено: 23:54, 26-03-2008 | #6


Аватара для elChoopacabra

Старожил


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

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


Очень интересная тема т.к. перепаковываю практически весь свой софт, и есть иногда сложности...
Но из постов мало что понял... Буду очень признателен, если объясните на конкретном примере...
Допустим есть
Код: Выделить весь код
C:\Program Files\PicaView32\PicaView.dll
Пишет себя в реестре
Код: Выделить весь код
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{68f32140-2ca3-11d0-acc1-444553540000}\InProcServer32]
@="C:\\PROGRA~1\\PICAVI~1\\PicaView.dll"
Сразу отмечу, что понимает только короткие имена и не понимает переменные типа %systemdrive%
Вот как избавится в данном случае от привязки к диску C:\ т.е., чтобы при инсталляции прописывался тот диск, куда ставится PicaView.dll?
Заранее спасибо.

Отправлено: 13:52, 27-03-2008 | #7


Аватара для hb860

Идиот


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

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


А если попробобвать
Код: Выделить весь код
regsvr32 /s %programfiles%\PicaView32\PicaView.dll
Может она сама пропишется ?

-------
http://feeds.feedburner.com/Winreviewru.1.gif
Горячие клавиши Windows 8 | Все программы, которые я разработал| Гаджеты для Windows 8


Отправлено: 16:12, 27-03-2008 | #8



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [решено] как добавить путь к текущей директории в reg файл из bat файла ?

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как сделать reg-файл? user2000 Хочу все знать 6 02-06-2012 23:42
[решено] Как сделать .reg файл с конфогом служб? jorikello Автоматическая установка Windows 2000/XP/2003 3 29-08-2009 16:57
CMD/BAT - [решено] Проверить наличие файла с текущей датой. OlegStarov Скриптовые языки администрирования Windows 4 21-04-2009 12:11
Разное - [решено] Как присвоить переменной путь к текущей директории? njg Microsoft Windows 2000/XP 1 18-01-2009 21:22
(solved)Как получить переменную, содержащую путь к директории Documents and Settings? arial Автоматическая установка Windows 2000/XP/2003 12 15-11-2005 15:58




 
Переход