Что нового

Работа с Path

vovaking

Новичок
Сообщения
5
Репутация
0
Доброе время суток.

Кто нибудь может мне помочь.
Имеется код взятый за прототип с http://www.oszone.net/3663

Код:
;какой путь нужно дописать в переменную Path
$addtopath=";\\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm"
;извлечение текущего содержимого переменной Path
$curpath=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path")

If Not StringInStr ($curpath,$addtopath) and Not StringInStr ($curpath,";\\im.vodmin.ru\im\show;\\im.vodmin.ru\im\cadm") Then
    RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path","REG_EXPAND_SZ",$curpath & ";" & $addtopath)
 EndIf


Смысл какой! Нужно что бы если в переменной Path существует строка то ее надо заменить, а если строк нету, то вписываем параметры.
Вот как бы мне это сделать, что то ни как не могу понять.

ПОМОГИТЕ ПОЖАЛУЙСТА
 

hellm

Новичок
Сообщения
32
Репутация
1
Лови

Код:
Local $path = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Local $value = "C:\Temp"

RegWrite($path, "Path", "REG_SZ", $value)
 
Автор
V

vovaking

Новичок
Сообщения
5
Репутация
0
Что то не пойму, как Вашим предложенным методом пользоваться???
 

hellm

Новичок
Сообщения
32
Репутация
1
Функция RegWrite меняет параметр ключа = перезаписывает. Если ключа нет - создает.
Путь к ключу и его значение я вывел в переменные для удобства.
Или у вас есть надобность вписывать разные параметры?
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
vovaking [?]
Смысл какой! Нужно что бы если в переменной Path существует строка то ее надо заменить, а если строк нету, то вписываем параметры.Вот как бы мне это сделать, что то ни как не могу понять.
Вы действительно хотите решение на текущую постановку вопроса? Или попробуете объяснить подробнее?
 
Автор
V

vovaking

Новичок
Сообщения
5
Репутация
0
Мне нужно что бы если в переменной Path есть параметры \\im.vodmin.ru\im\show;\\im.vodmin.ru\im\cadm64; или \\im.vodmin.ru\im\show;\\im.vodmin.ru\im\cadm; То тогда нужно заменить их на \\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm64; или \\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm;

если переменной \\im.vodmin.ru\im\show;\\im.vodmin.ru\im\cadm64; или \\im.vodmin.ru\im\show;\\im.vodmin.ru\im\cadm;
НЕТУ то тогда пишем
\\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm64; или \\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm;
 

erlik

Продвинутый
Сообщения
317
Репутация
84
vovaking
И опять все очень туманно...
Домысливать то, о чем автор умалчивает мало кому интересно. Поэтому исходя из предложенных условий - условный вариант решения:
Код:
Local $sPath      = EnvGet('Path')
Local $sRepPath   = '(\\\\im.vodmin.ru\\im\\show;\\\\im.vodmin.ru\\im\\cadm64)'
Local $sRepPath2  = '(\\\\im.vodmin.ru\\im\\show;\\\\im.vodmin.ru\\im\\cadm)'
Local $sAddPath   = '\\\\su479.vodmin.ru\\im\show;\\\\su479.vodmin.ru\\im\\cadm64'
Local $sAddPath2  = '\\\\su479.vodmin.ru\\im\\show;\\\\su479.vodmin.ru\\im\\cadm'
; судя по вашим скудным условиям -\\im.vodmin.ru\im корневое содержимое всех путей - поэтому используем простое сравнение
If StringInStr($sPath,'\\im.vodmin.ru\im') Then
	; вот здесь по идее нужно выбирать одно из двух - в зависимости от условий, но так как они покрыты мраком тайны, то пишу вместе
	$sPath = StringRegExpReplace($sPath,$sRepPath,$sAddPath)
	$sPath = StringRegExpReplace($sPath,$sRepPath2,$sAddPath2)
Else
    ; если корневая подстрока не найдена - добавляем в PATH тот или иной добавочный путь. Какой именно и по каким условиям - решать вам.
	If 'Ваше условие' Then
	    $sPath&=';' & '\\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm64'
	Else
	    $sPath&=';' & '\\su479.vodmin.ru\im\show;\\su479.vodmin.ru\im\cadm'
    EndIf
EndIf

Ну а как записать новый вариант PATH в реестр вы и сами знаете.
 
Верх