PowerShell을 사용하여 레지스트리 값 해석


2

예를 들어, 다음 키를 고려하십시오.

HKEY_CLASSES_ROOT\txtfile\shell\open\command

그리고 그것의 (Default)

%SystemRoot%\system32\NOTEPAD.EXE %1

이 값은 두 번 클릭 할 때 어떤 일이 발생할지 결정합니다. .txt 파일. %SystemRoot%%1 해석 가능한 변수 cmd.exe. PowerShell의 동일한 명령은 다음과 같습니다.

$env:SystemRoot\system32\NOTEPAD.EXE $args[0]

그러나 Powershell에 해당하는 레지스트리 값을 설정하면 오류가 발생하게됩니다. cmd.exe PowerShell이 ​​아니라 해석하려고합니다. PowerShell이 ​​대신 인터프리터가되도록 Windows를 설정할 수 있습니까? cmd.exe?

답변:


3

Windows에서 PowerShell 스타일 변수를 레지스트리에 사용하도록 설정할 수 없습니다. 이렇게하면 많은 응용 프로그램에서 획기적인 변화가 될 것입니다. cmd.exe 환경 변수를 확장 할 수있는 것은 아닙니다.

예를 들어, 다음을 사용하여 .NET을 사용하여 환경 변수를 확장 할 수 있습니다.

[Environment]::ExpandEnvironmentVariables('%SystemRoot%\system32\NOTEPAD.EXE %1')

다음과 같이 입력 할 수도 있습니다. %HOME% 실행 대화 상자에서 승리 + R ) 또는 Windows 탐색기 주소 표시 줄에 홈 디렉토리를 엽니 다. 이 둘 중 어느 것도 사용하지 않는다. cmd.exe 변수를 확장합니다.

타사 응용 프로그램은 문자열 자체를 구문 분석하고 레지스트리에서 값을 조회 할 수도 있습니다. 이전 버전과의 호환성에 대한 Microsoft의 우려로 인해 Windows에서 환경 변수가 레지스트리에 저장되는 방식이 바뀔지는 모르겠습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.