
cmd.exe
복잡한 이유로 인해 의 동일한 복사본을 만들고 이름을 으로 변경 해야 했습니다 cmd-2.exe
. 이를 작업 표시줄에 바로가기로 넣어 다른 작업 표시줄 그룹에 "그룹화"했습니다.
때로는 이 사실을 잊어버리고 새 cmd.exe
작업 표시줄 아이콘을 마우스 가운데 버튼으로 클릭하여 새 cmd.exe
. 그런 다음 다음과 같은 명령을 입력하면 dir
다음을 포함하여 말도 안되는 소리가 뱉어집니다. 이는 "실제"를 열지 않고 DNS bad key
실수로 를 사용한 경우에만 발생하므로 "실용적인" 문제는 아닙니다.cmd-2.exe
cmd.exe
그런데 왜 그 메시지가 인쇄되었는지 궁금합니다. 일종의 DNS 조회 등을 수행하지 못하는 것 같나요? dir
내 로컬 컴퓨터의 파일 목록을 발행하는 데 DNS가 관련된 이유는 무엇입니까 ? 네트워크 설정도 없고, 클라우드 드라이브도 없고, 그런 것도 전혀 없습니다. .dir
아마도 DNS bad key
도메인 이름 시스템과 전혀 관련이 없는 것을 의미하는 것일까요? 나는 그 맥락에서 "잘못된 키"가 무엇인지조차 모릅니다.
답변1
두 번째 cmd.exe는 cmd.exe.mui 위성 리소스 라이브러리에서 지역화된 문자열을 찾아서 로드하지 못합니다.
다음은 10.0.18362.1(160101.0800)에서 가져온 실제로 말하려는 내용입니다.
- 0x235F: "드라이브 %1의 볼륨은 %2입니다."
- 0x235B: "볼륨 일련 번호는 %1입니다."
- 0x2339: "%1 디렉터리"
이것은 실제로 일반 명령 출력의 처음 세 줄입니다 dir
.
이것은 재미있는 것입니다. 기본 시스템 메시지 테이블에는 메시지 번호 0x235F 및 0x235B에 대한 항목이 없습니다. 따라서 처음 두 출력의 경우 @harrymc의 콘솔 스크린샷에 표시된 것처럼 비밀스러운 메시지를 받게 됩니다.
그러나 0x2339의 경우 기본 시스템 메시지 테이블에 "DNS 잘못된 키"라는 텍스트를 가리키는 항목이 KernelBase.dll.mui에 물리적으로 저장되어 있습니다.
명령 프로세서 리소스의 "디렉터리 %1" 줄 번호를 공유하는 일이 발생합니다. 이는 cmd.exe 개발자가 예상하지 못한 대체 현상입니다. 따라서 DNS 참조는 우연일 뿐이며 무엇이든 될 수 있습니다.
적절한 메시지에는 가변 인수(디렉토리 이름)가 포함되어 있지만 DNS 메시지에는 포함되어 있지 않습니다. 그래서 그 이후에는 더 이상 출력이 없는 것 같습니다. 그냥 종료될 수도 있습니다.
답변2
문제를 복제했습니다.
(메시지가 그다지 유익하지 않다는 점에 동의합니다.)
문제는 Vista부터 모든 텍스트 메시지가 별도의 파일로 컴파일되므로 Windows가 새 CMD 이름으로 메시지 파일을 검색하지만 찾을 수 없다는 것입니다.
cmd.exe
에 복사하는 것만으로는 충분하지 않습니다 cmd-2.exe
. 또한 %WinDir%\System32\en-US
파일을 폴더(또는 해당 언어)에 복사해야 합니다 cmd.exe.mui
. 그렇지 않으면 메시지를 발행해야 할 cmd-2.exe.mui
때마다 이러한 미친 메시지를 받게 됩니다 .cmd-2.exe
참고: 여기서 "DNS"는 인터넷을 의미하지 않습니다. 도메인 명 시스템. 이것은 단지 우연일 뿐입니다.