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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Изменение пути в REG файле

Ответить
Настройки темы
VBS/WSH/JS - Изменение пути в REG файле

Аватара для gen0m.rsw

Пользователь


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

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


Всем участникам форума респект!

Собственно проблема
Есть папка 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:\\

Спасибо за внимание!!!!

Отправлено: 01:54, 23-01-2014

 

Ветеран


Contributor


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

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


Цитата gen0m.rsw:
Нужен X:\RSWP\shell.vbs, который определил букву диска X , с которого он запускается »
Полагаю, что речь идёт всё-таки про диск, где находится скрипт, а не рабочий каталог, «с которого он запускается».

Цитата gen0m.rsw:
и изменил ВСЕ пути в 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

Отправлено: 07:48, 23-01-2014 | #2



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

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


Аватара для gen0m.rsw

Пользователь


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

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


Цитата Iska:
Полагаю, что речь идёт всё-таки про диск, где находится скрипт, а не рабочий каталог, «с которого он запускается». »
Да Isra, shell.vbs должОн знаходиться в корне папки и диске откуда запущен!!!
Потому что папка RSWP постоянно перемещается с диска на диск!!!
Файл shell.reg, енто файл настоек программы awxShellFish http://www.arniworld.de/
Сохраняет REG файл в ANSI(начало reg файла REGEDIT4)!!!!

Отправлено: 02:30, 25-01-2014 | #3


Ветеран


Contributor


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

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


Цитата gen0m.rsw:
Сохраняет 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:
откуда запущен!!! »
Ещё раз: «откуда запущен» — это рабочий каталог приложения, а не его местоположение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:54, 25-01-2014 | #4


Аватара для gen0m.rsw

Пользователь


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

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


Iska
Вроде все нормально, тему можно считать закрытой!!!
Респект!!!!

Отправлено: 03:25, 25-01-2014 | #5


Аватара для gen0m.rsw

Пользователь


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

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


Цитата Iska:
Пробуйте (не проверялось) »
Я так понимаю в файле shell.reg заменяется именно D:\\RSWP на X:\\RSWP , где X буква диска с которого запущен скрипт
Так если в shell.reg будет другой путь замена не произойдет!!!

Отправлено: 13:33, 14-10-2014 | #6


Ветеран


Contributor


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

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


Цитата gen0m.rsw:
Я так понимаю в файле shell.reg заменяется именно D:\\RSWP на X:\\RSWP »
Нет. Неправильно понимаете.

«в файле shell.reg», лежащем в текущем для скрипта каталоге, «заменяется именно D:\\RSWP» на путь, в котором находится файл скрипта. Будет полный путь к скрипту «X:\RSWP\Скрипт.vbs» — да, заменит на «X:\\RSWP». Будет полный путь к скрипту «X:\Вася\Петя\Коля\Маша\Скрипт.vbs» — заменит на «X:\\Вася\\Петя\\Коля\\Маша».

Цитата gen0m.rsw:
Так если в shell.reg будет другой путь замена не произойдет!!! »
Если в «shell.reg» будет другой путь, так и укажите его в:
Код: Выделить весь код
.Write Replace(strContent, "D:\\RSWP", Replace(strPath, "\", "\\"))
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте.

Отправлено: 15:33, 14-10-2014 | #7


Аватара для gen0m.rsw

Пользователь


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

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


Цитата Iska:
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте. »
А нельзя путь "X:\\RSWP" , где Х любая буква диска заменить на что то вроде как в CMD скриптах "..\..\RSWP" !!!

Цитата Iska:
Знаете какой-нибудь другой способ «найти то, не знаю, что» — предлагайте. »
Или часть строк
Код: Выделить весь код
"Command"="D:\\RSWP
"Icon"="D:\\RSWP
Где D любая буква диска, заменить на
Код: Выделить весь код
"Command"="X:\\RSWP
"Icon"="X:\\RSWP
Где Х текущая буква!!!

Отправлено: 11:53, 15-10-2014 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Изменение пути в REG файле

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Удаление строк в REG файле gen0m.rsw Скриптовые языки администрирования Windows 7 10-10-2014 21:17
Любой язык - копирование значения ключа реестра в .reg файле paerpo Скриптовые языки администрирования Windows 12 20-02-2013 19:10
CMD/BAT - Поиск и замена в reg файле. Podagral Скриптовые языки администрирования Windows 0 05-12-2011 12:08
VBS/WSH/JS - Удаление строк в REG файле gen0m.rsw Скриптовые языки администрирования Windows 9 28-09-2011 18:03
[решено] Формат комментариев в REG-файле truvo Хочу все знать 13 30-03-2009 17:16




 
Переход