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

Ответить
Аватара пользователя
mitiya

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

Сообщение mitiya »

смысл вот в чем :

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

Соответственно для того чтобы перепакованая прога могла ставится куда угодно надо в 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 я не знаю.
Аватара пользователя
mitiya

Re: [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Сообщение mitiya »

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

Это хорошо, если я устанавливаю в програм файлс ,а если я устанавливаю даже не на систем драйв ?
Аватара пользователя
Petya V4sechkin

Re: [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Сообщение Petya V4sechkin »

Цитата mitiya:



а %cd% выдает туь с "\"



Замена одинарных \ на двойные:



Код:

Код: Выделить всё

Set CD2=%CD:\=\\%
Echo %CD2%



Код:
Аватара пользователя
werwolf-basic

Re: [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Сообщение werwolf-basic »

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



"Install_Path"="%~d0" да?
Аватара пользователя
elChoopacabra

Re: [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Сообщение elChoopacabra »

Очень интересная тема т.к. перепаковываю практически весь свой софт, и есть иногда сложности...

Но из постов мало что понял... Буду очень признателен, если объясните на конкретном примере...

Допустим есть



Код:

Код: Выделить всё

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?

Заранее спасибо.
Аватара пользователя
hb860

Re: [решено] как добавить путь к текущей директории в reg файл из bat файла ?

Сообщение hb860 »

А если попробобвать

Код:

Код: Выделить всё

regsvr32 /s %programfiles%\PicaView32\PicaView.dll

Может она сама пропишется ?
Ответить

Вернуться в «Автоматическая установка приложений»