Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Получение значения параметра реестра (http://forum.oszone.net/showthread.php?t=152308)

IfoR 04-10-2009 18:10 1234378

Получение значения параметра реестра
 
Вот получить значение на экран через REG QUERY это понятно, но дело в том что эта команда не возвращает чисто значение параметра, а добавляет ещё название параметра и его тип.
Собственно задача такая, нужно из параметра реестра получить строку - путь и в полученный путь скинуть файлы. Везде облазил, но как получить именно само значение параметра либо отфильтровать именно его так и не нашёл.
Помогите, люди добрые, как такое осуществить?

gora 04-10-2009 18:17 1234384

Цитата:

Цитата IfoR
из параметра реестра получить строку - путь »

Как вариант:
Код:

@Echo Off
For /f "tokens=2*" %%a In ('Reg query "HKCU\SOFTWARE\7-Zip" ^| Find /i "Path"') Do Set "path7Zip=%%b"
Echo %path7Zip%
Pause>nul


IfoR 04-10-2009 18:43 1234402

Спасибо! Помогло. )

dworg1 05-04-2010 15:29 1385453

Не работает правильно с русскими значениями параметров - выдает их в неправильной кодировке :(

если быть более точным, то надо скопировать файл на рабочий стол

Сделал скрипт, используя приведенный выше код

Код:

@Echo Off
For /f "tokens=2*" %%a In ('Reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| Find /i "Desktop"') Do Set "pathcons=%%b"

Echo %pathcons%

xcopy c:\1.txt "%pathcons%" /h /r /y /i

Pause>nul

В итоге вместо получения параметра "рабочий стол" мне выдается значение "╨рсюўшщ ёЄюы"

gora 05-04-2010 20:00 1385614

Попробуйте так:
Код:

@Echo Off
For /f "tokens=2*" %%a In ('Reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" ^| Find /i "Desktop"') Do Echo %%b>1251.txt
win_iconv.exe -f CP1251 -t CP866 1251.txt>866.txt
For /F "Delims=" %%I In (866.txt) Do Set pathcons=%%I
Echo %pathcons%
Del /Q 1251.txt 866.txt
xCopy c:\1.txt "%pathcons%" /h /r /y /i
Pause>nul

Утилиту прикрепил.

amel27 06-04-2010 05:56 1385843

можно вроде и без внешних утилит:
Код:

CHCP 1251 >Nul
For /F "Tokens=2*" %%a In ('Reg Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"^|Find /I "Desktop"') Do Set DPath=%%b
CHCP 866  >Nul
Echo %DPath%


dworg1 08-04-2010 12:54 1387847

Второй метод точно работает. gora и amel27 - спасибо :)


Время: 16:12.

Время: 16:12.
© OSzone.net 2001-