% USERPROFILE %를 Windows 레지스트리의 명령에 추가


6

나는 새로운 VM을 만들거나 랩톱을 다시 만들 때 일부 설정 작업을 간소화 할 레지스트리 해킹을 작성하려고합니다. 내가하고있는 한 가지는 메모장 ++를 비롯한 여러 가지 내가 좋아하는 앱의 휴대용 버전 (Dropbox에서 동기화 됨)으로 전환하는 것입니다.

레지스트리 항목을 만들어서 마우스 오른쪽 버튼 메뉴에서 Notepad ++ 옵션으로 열기를 허용하고 싶습니다.이 항목은 휴대용 버전에서 누락 된 유일한 것입니다. 그래도 오류가 발생합니다.

Windows cannot access the specified device, path or file. You may not have the 
appropriate permissions to access the item.

여기 내거야. .reg 파일:

[HKEY_CLASSES_ROOT\*\shell\Open with Notepad++]
"Icon"="%USERPROFILE%\\Dropbox\\Programs\\Setup\\Icons\\Notepad++.ico"
@=""

[HKEY_CLASSES_ROOT\*\shell\Open with Notepad++\command]
@="%USERPROFILE%\\Dropbox\\Programs\\Notepad++\\notepad++.exe %1"

아이콘이 완벽하게 작동합니다. 내가 하드 코드하면 위의 항목을 잘 작동하도록 할 수 있습니다. C:\Users\myusername,하지만 여기에 이식성이 있습니다.

나는이 문제가 바로 그 문제에 대한 올바른 이스케이프 시퀀스를 찾는 것이라고 확신한다. % 기호,하지만 말하기 어렵다.

제안?

편집 : 나는 함께 갔다. add reg 명령 옵션을 사용하고 약간의 시행 착오를 거친 후 작동하는 명령은 다음과 같습니다.

reg add HKCR\*\shell\OpenWithNotepad++\command /t REG_EXPAND_SZ /ve /d ^%USERPROFILE^%"\Dropbox\Programs\Notepad++\notepad++.exe %1"

명령을 실행 한 후 결과를 .reg 파일도. 주변에서 모두 승리합니다.

답변:


8

레지스트리에서 환경 변수를 사용 (확장)하려면 값이 유형이어야합니다 REG_EXPAND_SZ.

기준 이 질문 , 그런 종류의 가치를 추가하는 것이 가장 쉽습니다. reg 명령보다는 .reg 파일. .

reg add <KEY> /v <NAME> /t REG_EXPAND_SZ /d <DATA>

만나다 reg add /? 이 구문에 대한 자세한 내용은

또한 데이터를 16 진수로 인코딩 할 수도 있습니다. 그 몇 가지 예가 있습니다. 이리 :

REG_EXPAND_SZ 데이터는 MS가 이진 데이터   유형 (하위 유형 "2")이므로 값은 일종의 형식이어야합니다   쉼표로 구분 된 16 진수 형식, 바이트 당 2 개의 토큰 (   0), 끝 null 바이트 물론 (및 추가   설명은 분명히이 기사의 범위를 훨씬 뛰어 넘습니다.   저자는 불완전한 사람의 오용에 대해 책임을지지 않습니다.   정보). 위의 줄은 작동하지 않지만   달성하고자하는 최종 결과를 나타냅니다. 실제 작업으로 .REG   -file entry 위의 예제는 다음과 같이 렌더링되어야합니다 :

"SoMeThIng"="%WINDIR%\\system32"

된다

"SoMeThIng"=hex(2):22,25,57,49,4e,44,49,52,25,5c,5c,73,79,73,74,65,6d,33,32,22,00

이것은 매우 도움이되었습니다. 그러나 명령의 구문에 집착하십시오. reg add HKCR\*\shell\Open with Notepad++\command /t REG_EXPAND_SZ /ve /d ^%USERPROFILE^%\Dropbox\Programs\Notepad++\notepad++.exe %1 구문 오류가 발생했습니다. 전에 공간을 어떻게 다룰 지 잘 모르겠다. %1, 어느 쪽이든 ...
Josh Earl

2
문자열 주위에 따옴표를 넣으십시오. 공백은 별도의 인수로 분리되어 잘못된 구문 (예상보다 많은 인수)이됩니다.
Bob

소리가 나는 것만 큼 미친 듯이, 문자열 안의 공백을 따옴표로 묶을 수 있습니다. reg add HKCR\*\shell\OpenWithNotepad++\command /t REG_EXPAND_SZ /ve /d ^%USERPROFILE^%\Dropbox\Programs\Notepad++\notepad++.exe" "%1
jaylweb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.