CMD/BAT - [решено] Получение значения параметра реестра

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

CMD/BAT - [решено] Получение значения параметра реестра

Сообщение IfoR »

Вот получить значение на экран через REG QUERY это понятно, но дело в том что эта команда не возвращает чисто значение параметра, а добавляет ещё название параметра и его тип.

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

Помогите, люди добрые, как такое осуществить?
Аватара пользователя
gora

Re: CMD/BAT - [решено] Получение значения параметра реестра

Сообщение gora »

Цитата IfoR:



из параметра реестра получить строку - путь
CMD/BAT - [решено] Получение значения параметра реестра




Как вариант:

Код:

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

@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

Re: CMD/BAT - [решено] Получение значения параметра реестра

Сообщение IfoR »

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



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



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





Код:

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

@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

Re: CMD/BAT - [решено] Получение значения параметра реестра

Сообщение gora »

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

Код:

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

@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

Re: CMD/BAT - [решено] Получение значения параметра реестра

Сообщение amel27 »

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



Код:

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

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

Re: CMD/BAT - [решено] Получение значения параметра реестра

Сообщение dworg1 »

Второй метод точно работает. gora и amel27 - спасибо Изображение
Ответить

Вернуться в «Скриптовые языки администрирования Windows»