큰 따옴표로 레지스트리 키를 만들면 어떤 차이가 있습니까? 때보 다 일반적이고 더 큰 파란색

방금 “쉘”, “파워 쉘”및 “명령”키를 Windows 레지스트리의 적절한 위치에 추가하여 “Open PowerShell Here”컨텍스트 메뉴 항목을 만들었습니다. “command”의 기본값은 전체 경로를 큰 따옴표로 묶지 않고 이스케이프 문자로 백 슬래시를 사용하여 내 powershell.exe의 경로입니다.

이로 인해 powershell이 ​​실행 된 상태에서 cmd 창이 열렸습니다. 즉, 창은 작고 검은 색이었고 기본 명령 프롬프트 스타일로 서식이 지정되었습니다.
경로를 이스케이프 문자로 사용하지 않고 대신 큰 따옴표로 묶어 다른 경로를 변경하지 않고, 그 어느 때보 다 일반적이고 더 큰 파란색 PowerShell 창이 열렸습니다.

이중 따옴표가 레지스트리에 가져 오는 변경 사항이 궁금합니다. 이 경우 실행 방법을 어떻게 변경하고 그 이유는 무엇입니까?

해당 키는 다음과 같습니다.
C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe


"C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe"

첫 번째 키는 PowerShell이 ​​시작된 표준 검정 명령 프롬프트 창을 열고 두 번째 키는 친숙한 파란색 “PowerShell”창을 엽니 다.

특정 폴더에서 Powershell을 시작하는 열쇠는 끝에 논증이 있습니다. 여기서는 의도적으로 생략한데, 이것들은 제가 테스트 한 결과이고 다른 결과를줍니다.



답변

첫 번째 시나리오에서는 아무 것도 벗어날 수 없습니다. 새로운 프로세스는 다음과 같은 완전한 명령 행으로 생성됩니다. C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe, 당신이 쓴 것과 똑같습니다. (Process Explorer로 검증 됨)

Windows는 콘솔 스타일 정보 (색상, 글꼴, 창 크기)를 HKCU\Console. 콘솔 모드 프로그램 (즉, 자체 프로그램을 생성하는 프로그램 conhost.exe 인스턴스)가 실행되면 Windows는 Console 경로에 환경 변수가있는 프로그램의 EXE 전체 경로를 지정했습니다. 쓰러진 (주 참조)와 \ 대체 된 _. (실패 할 경우 Windows는 해당 하위 키를 확인하지 않고 \ 대체,하지만 레지스트리 편집기는 포함시키지 않습니다 \ 키 이름으로. 프로세스 모니터로 확인 됨.)

노트 : “붕괴”(환경 변수와 관련하여)는 “팽창”의 반대말에 불과합니다. 확장은 다음과 같은 환경 변수를 대체하는 프로세스입니다. %SystemRoot% 값 (예 : C:\Windows 이 경우). 가능한 경우 콘솔 키를 참조하기 전에 Windows에서 값을 환경 변수로 축소합니다. C:\Windows 대체되다. %SystemRoot%.

일반적으로 Windows에서는 PowerShell의 하위 키 설정이 호출됩니다. %SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe. 그러나 프로그램의 경로에 여분의 백 슬래시가 있기 때문에 (적어도이 경우에는 Windows가 용서하지만 정리하지는 않음) 적절한 하위 키가 없으므로 특별한 콘솔 설정을 찾지 못합니다. 컨텍스트 메뉴 항목을 시작할 때 설정하면 C:\Windows\system32\WindowsPowerShell\v1.0\\powershell.exe (마지막 \ 두 배로 늘림) 실제 하위 키의 이름을 %SystemRoot%_System32_WindowsPowerShell_v1.0__powershell.exe (마지막 _ 출시 된 PowerShell 인스턴스는 스타일링을 얻었습니다.

곁에: 입력으로 시작되는 PowerShell 인스턴스 powershell 기존의 명령 프롬프트에서는 특별한 스타일을 얻지 못합니다. 부모 스타일의 콘솔에 붙어 있기 때문입니다. 일반적으로 지루한 기본 스타일이 있습니다. 그 현상은 위와는 관련이 없습니다.

추가 읽기 : 제이 바즈 지의 좋은 대답 스타일링이 가능한 여러 곳을 언급합니다.