Показать полную графическую версию : Изменение пути в REG файле
gen0m.rsw
23-01-2014, 01:54
Всем участникам форума респект!
Собственно проблема
Есть папка RSWP, которая находиться всегда в корне диска X:\RSWP
В папке RSWP находиться файл shell.reg, с настройками, примерно такого содержания
[HKEY_CURRENT_USER\SOFTWARE\arniWORX\awxShellFish\*\arid]
"Command"="D:\\RSWP\\PACKER\\arid\\aridg.exe \"%1\""
"Icon"="D:\\RSWP\\PACKER\\arid\\aridg.exe,0"
"UseShortPath"=dword:00000000
[HKEY_CURRENT_USER\SOFTWARE\arniWORX\awxShellFish\*\HxD]
"Command"="D:\\RSWP\\FILE_FOLDERS\\HxD\\HxD.exe \"%1\""
"Icon"="D:\\RSWP\\FILE_FOLDERS\\HxD\\HxD.exe,0"
"UseShortPath"=dword:00000000
И.Т.Д.
Нужен X:\RSWP\shell.vbs, который определил букву диска X , с которого он запускается
и изменил ВСЕ пути в shell.reg файле, с D:\\ на X:\\
Спасибо за внимание!!!!
Нужен X:\RSWP\shell.vbs, который определил букву диска X , с которого он запускается »
Полагаю, что речь идёт всё-таки про диск, где находится скрипт, а не рабочий каталог, «с которого он запускается».
и изменил ВСЕ пути в shell.reg файле, с D:\\ на X:\\ »
Только в формате REG_SZ. Файл реестра ожидается в юникоде. Скрипт заменит все вхождения «D:\\RSWP» на путь, где находится скрипт. Пробуйте:
Option Explicit
Const ForReading = 1
Const TristateTrue = -1
Dim strFileName
Dim strPath
Dim strFullFileName
Dim strContent
strFileName = "shell.reg"
With WScript.CreateObject("Scripting.FileSystemObject")
strPath = .GetParentFolderName(WScript.ScriptFullName)
strFullFileName = .BuildPath(strPath, strFileName)
If .FileExists(strFullFileName) Then
With .OpenTextFile(strFullFileName, ForReading, False, TristateTrue)
strContent = .ReadAll()
.Close
End With
With .CreateTextFile(strFullFileName, True, TristateTrue)
.Write Replace(strContent, "D:\\RSWP", Replace(strPath, "\", "\\"))
.Close
End With
Else
WScript.Echo "Can't find file [" & strFullFileName & "]."
End If
End With
WScript.Quit 0
gen0m.rsw
25-01-2014, 02:30
Полагаю, что речь идёт всё-таки про диск, где находится скрипт, а не рабочий каталог, «с которого он запускается». »
Да Isra, shell.vbs должОн знаходиться в корне папки и диске откуда запущен!!!
Потому что папка RSWP постоянно перемещается с диска на диск!!!
Файл shell.reg, енто файл настоек программы awxShellFish http://www.arniworld.de/
Сохраняет REG файл в ANSI(начало reg файла REGEDIT4)!!!!
Сохраняет REG файл в ANSI(начало reg файла REGEDIT4)!!!! »
Пробуйте (не проверялось):
Option Explicit
Dim strFileName
Dim strPath
Dim strFullFileName
Dim strContent
strFileName = "shell.reg"
With WScript.CreateObject("Scripting.FileSystemObject")
strPath = .GetParentFolderName(WScript.ScriptFullName)
strFullFileName = .BuildPath(strPath, strFileName)
If .FileExists(strFullFileName) Then
With .OpenTextFile(strFullFileName)
strContent = .ReadAll()
.Close
End With
With .CreateTextFile(strFullFileName, True)
.Write Replace(strContent, "D:\\RSWP", Replace(strPath, "\", "\\"))
.Close
End With
Else
WScript.Echo "Can't find file [" & strFullFileName & "]."
End If
End With
WScript.Quit 0
откуда запущен!!! »
Ещё раз: «откуда запущен» — это рабочий каталог приложения, а не его местоположение.
gen0m.rsw
25-01-2014, 03:25
Iska
Вроде все нормально, тему можно считать закрытой!!!
Респект!!!!
gen0m.rsw
14-10-2014, 13:33
Пробуйте (не проверялось) »
Я так понимаю в файле shell.reg заменяется именно D:\\RSWP на X:\\RSWP , где X буква диска с которого запущен скрипт
Так если в shell.reg будет другой путь замена не произойдет!!! :(
Я так понимаю в файле shell.reg заменяется именно D:\\RSWP на X:\\RSWP »
Нет. Неправильно понимаете.
«в файле shell.reg», лежащем в текущем для скрипта каталоге, «заменяется именно D:\\RSWP» на путь, в котором находится файл скрипта. Будет полный путь к скрипту «X:\RSWP\Скрипт.vbs» — да, заменит на «X:\\RSWP». Будет полный путь к скрипту «X:\Вася\Петя\Коля\Маша\Скрипт.vbs» — заменит на «X:\\Вася\\Петя\\Коля\\Маша».
Так если в shell.reg будет другой путь замена не произойдет!!! »
Если в «shell.reg» будет другой путь, так и укажите его в:
.Write Replace(strContent, "D:\\RSWP", Replace(strPath, "\", "\\"))
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте.
gen0m.rsw
15-10-2014, 11:53
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте. »
А нельзя путь "X:\\RSWP" , где Х любая буква диска заменить на что то вроде как в CMD скриптах "..\..\RSWP" !!!
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте. »
Или часть строк
"Command"="D:\\RSWP
"Icon"="D:\\RSWP
Где D любая буква диска, заменить на
"Command"="X:\\RSWP
"Icon"="X:\\RSWP
Где Х текущая буква!!! :sorry:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.