실행(Run) 창에서 'CMD'나 'DISM' 같은 프로그램을 별도 경로 입력 없이 바로 실행해 본 적이 있으신가요? 프로그램이 즉시 실행되는 비결은 바로 Windows 환경 변수(Environment Variables)에 있습니다. 운영체제는 자주 사용하는 시스템 프로그램의 위치 경로 목록을 미리 보관하고 있어서, 실행 창에서 명령어만 입력하면 해당 위치를 찾아 곧바로 실행할 수 있습니다. 마치 프로그램 바로 가기가 설치 위치를 기억하고 빠르게 실행하는 것과 같은 원리입니다.
그런데 이 환경 변수 설정에 문제가 생기면 프로그램이 정상적으로 작동하지 않고, "...내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일로 인식되지 않습니다"라는 오류 메시지가 나타납니다. 이 가이드에서는 이러한 문제를 진단하고 해결하는 방법을 단계별로 안내합니다.
명령이 인식되지 않을 때 먼저 확인할 사항
문제를 해결하기 전에 해당 프로그램이 실제로 존재하는지부터 확인해야 합니다. WIN + R 키로 호출하는 실행 창에서도 동일한 오류가 발생할 수 있기 때문입니다. 파일 탐색기에서 C:\Windows\System32\ 폴더로 이동하여 해당 프로그램(EXE 파일)이 있는지 직접 확인해 보세요. 폴더 우측 상단의 검색 기능을 활용하는 것도 좋은 방법입니다. 파일이 존재하는 것이 확인되었다면 아래 방법으로 문제를 해결할 수 있습니다.
환경 변수 수정하기
1. WIN + X 키를 누른 후 시스템(System)을 선택합니다. 그러면 PC의 모든 속성 정보를 볼 수 있는 화면이 열립니다.
2. 왼쪽 패널에서 고급 시스템 설정(Advanced system settings)을 클릭한 뒤, 하단의 환경 변수(Environment Variables) 버튼을 누릅니다.
3. 시스템 변수(System Variables) 목록에서 Path 항목을 찾아 선택한 후 편집(Edit)을 클릭합니다.
4. 편집을 시작하기 전에 반드시 현재 값 전체를 복사해서 메모장에 백업해 두세요. 중간에 실수가 발생하더라도 원래대로 복원할 수 있습니다.
5. 목록에 'C:\Windows\System32' 경로가 있는지 확인합니다. 만약 없다면 새로 추가해야 합니다. 세미콜론(;)으로 구분해 한 줄에 이어 붙이거나, Windows 10/11의 편집 창에서는 '새로 만들기' 버튼으로 경로를 한 줄씩 추가할 수 있습니다.
6. 확인(OK)을 클릭하여 저장한 후 모든 창을 닫습니다.
7. 변경된 경로는 컴퓨터를 재부팅해야 완전히 적용됩니다. 모든 경로 정보는 재부팅 시점에 다시 불러오기 때문입니다.
재부팅이 완료되면 이전에 "...내부 또는 외부 명령, 실행할 수 있는 프로그램 또는 배치 파일로 인식되지 않습니다" 오류가 발생했던 프로그램을 다시 실행해 보세요. 대부분의 경우 문제가 해결될 것입니다.
활용 팁: 배치 파일 경로 등록하기
여기서 유용한 팁 하나를 소개합니다. 자신이 만든 배치 파일이나 특정 폴더에 모아 둔 여러 도구를 실행 창에서 간편하게 실행하고 싶다면, 해당 폴더의 경로를 Path 환경 변수에 추가하세요. 이후에는 전체 경로를 입력할 필요 없이 이름만 입력하면 바로 실행됩니다. 개발자들이 주로 이 방법을 활용해 자신의 프로그램 참조를 등록합니다.
내부 명령과 외부 명령의 차이점
내부 명령(Internal Command)은 Windows에 기본 포함되어 있으며, 명령 프롬프트(CMD)나 Windows 터미널에서 별도의 파일 없이 바로 실행됩니다. dir, cd, echo 같은 명령어가 대표적입니다.
외부 명령(External Command)은 시스템 변수나 운영체제에 의존하지 않고, 자체적인 라이브러리와 실행 파일을 통해 작동합니다. DISM, Flutter 등이 여기에 해당합니다.
Windows 터미널에서 외부 명령 사용하기
외부 명령을 어떤 터미널에서든 실행하려면 해당 프로그램의 경로를 환경 변수에 등록해야 합니다. 앞서 설명한 것처럼 시스템 변수의 Path 항목에 프로그램 경로를 추가하면, 터미널이 실행 시점에 해당 위치를 자동으로 찾아냅니다. 실제로 많은 사용자가 Flutter를 '내부 또는 외부 명령으로 인식되지 않는다'고 호소하는데, 이 경우 Flutter SDK가 설치된 폴더 경로를 Path에 추가하기만 하면 됩니다.