Windows에서 실행 파일을 나타내는 파일 이름 확장자는 무엇입니까?


17

Windows에서 * .exe, * .bat, * .cmd 및 * .com은 모두 두 번 클릭하여 실행할 수있는 프로그램 또는 쉘 스크립트를 나타냅니다. 파일이 실행 가능함을 나타내는 다른 파일 이름 확장자가 있습니까?

편집 : 새로운 프로젝트 (또는 오래된 프로젝트로 돌아갈 때)로 ​​돌아갈 때, 내가 둘러 볼 때하고 싶은 일반적인 일 중 하나는 어떤 도구가 있는지 알아 보는 것입니다. 유닉스 (수십 년 동안 사용한)에는 실행 비트가 있으므로 다음과 같이 간단합니다.

find . -executable -type f

"이 실행 파일 (및 실행 방법)"에 대한 훨씬 더 복잡한 메커니즘을 가진 Windows에서 거의 동일한 목적을 수행하는 파일 이름 확장명이 상대적으로 적을 것이라고 생각했습니다.

내 현재 프로젝트 *.exe *.bat *.cmd에는 거의 충분하지만 권위있는 목록이 있는지 물을 것입니다.

답변:


26

기본 "실행 파일"파일 (Windows가 PATH를 통해 실행하는 파일)은 PATHEXT라는 환경 변수에 저장됩니다. 명령 프롬프트에서이를 확인할 수 있습니다.

C:\>set PATHEXT

내 컴퓨터에서 이것을 얻습니다 (WinXP).

PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1

독점 목록이 아닙니다. Windows는 다른 파일도 실행합니다 (예 : 화면 보호기 확장자는 .scr이며 실행 파일 임). Windows는 다른 파일 확장자의 실행도 허용하지만 위에 나열된 파일 확장자 는 기본 실행 파일 확장자입니다.


1
훌륭한 발견!
barlop

1
또한 py를 추가하여 "pyscript"가 "pyscript.py"를 실행하도록 할 수 있습니다.
Phoshi

@Phoshi 그러나 .py로 당신은 제 3자가되고 끝은 없습니다
barlop

@barlop; 실제로 나는, 그러나 질문에 접하는 경우 아는 것이 유용합니다 :)
Phoshi

5
스크린 세이버를위한 .SCR도 있습니다. 스크린 세이버의 실제 실행 코드를 포함 할 수 있습니다. 그들은 단지 PATHEXT에 없습니다.
sinni800

2

설치 프로그램을위한 일반적인 방법은 .msi입니다.


3
여전히로 구문 분석해야하기 때문에 실행 파일 형식이 적고 스크립트 형식이 더 많습니다 msiexec.exe.
Hello71

@ 안녕하세요 71 : 당신은 정말 12입니까?
paradroid

@ paradroid : 아니오, 그는 정말 아닙니다. 그의 글쓰기 스타일을보세요.
studiohack

@ paradroid : 정말 중요합니까?
Hello71

@studiohack : 그게 내가 혼란 스럽습니다. @ Hello71 : 예, 그렇습니다.
paradroid

2

.vbs는 스크립트입니다. .js

그러나 일부 역사를 알고 있다면 상황을 더 잘 이해할 수 있습니다. 내가 오랫동안 컴퓨터를 사용하지 않았다면 어떤 확장 프로그램이 실행 파일인지 아는 데 집중할 수있을 것입니다. 시간이 지남에 따라 .COM은 DOS 이후에 많은 시간을 소비했습니다. 어쩌면 오래된 NT가 그것들을 많이 사용했을 것입니다. 스크립트 .. vbs는 아마 win9x 시간 주위에 왔습니다. 그래서 새로운 것이 나타납니다. ps1은 vbs보다 최신 버전입니다.

.COM은 매우 오래되었습니다 .. 예를 들어 Windows XP가 .COM 파일을 사용하는지 잘 모르겠습니다. 그러나 그것은 내가 생각하는 레거시 앱에 대한 command.com을 더 가지고 있습니다.

.BAT는 DOS 시절의 스크립트입니다. 오늘날에도 여전히 사용되고 있습니다. .VBS는 더 현대적이지만 .BAT는 여전히 사용되며 조만간 사용하지 않을 것이며 사람들은 현명하게 두 가지를 모두 사용합니다. 내가 사용하지 않았지만 아마도 그렇게 다르지 않은 .CMD가 있습니다. ps1이 있습니다 (powershell. 이것은 vbscript보다 현대적입니다) 우리가 느슨한 의미에서 스크립트를 이야기하는 경우 .REG가 있습니다.

실제로 실행 파일이라는 용어는 EXE 및 .COM에만 적용됩니다. (. COM은 기본적으로 멸종됩니다 .. 더 많은 win9x 항목 (win9x의 명령 프롬프트는 command.com, cmd.exe는 없었습니다), COM 파일은 DOS 항목입니다. 그러나 NT의 CMD가 아닙니다. 예를 들어 NT의 명령 셸은 cmd.exe이지만 NT에는 command.com이 있지만 레거시 응용 프로그램은 추측하지만 NT는 대부분 그것에 의존하지 않습니다)

.MSC 예 : start..run..services.msc 이들은 실행 파일이 아닙니다. 일종의 스크립트라고 생각합니다. services.msc는 xml로 작성된 것 같습니다.)하지만 느슨해지면 한 걸음 더 나아갈 수 있습니다. 비 시스템적인 것, HTML 페이지는 스크립트처럼 해석됩니다. 그러나 OS가 아니라 .. .CPL은 스크립트가 아닙니다. 메모장에서 확인하십시오. 사람들은 그것들을 실행 파일이나 스크립트로 생각하지 않는 경향이 있습니다. (또는 다른 사람들이하는 경우 매우 드 common니다!)


불행하게도, 추가 .MSC받는 것은 PATHEXT확장자를 추가하지 않고 당신이 MMC 스냅 - 인을 실행할 수 있도록 (예를 들어하지 않는 services대신 services.msc). :-(
Synetech

@Synetech는 이미 있기 때문입니다 services.exe.
kinokijuf

@kinokijuf, 사실; 당신이 실행하는 경우 diskmgmtA로부터 확장자없이 명령 프롬프트 가 작동하지만 실행 services하지 않습니다. 그러나 시스템 전체 변수에 포함되어 있더라도 확장명 없이 실행 대화 상자 에서 실행하려고하면 이들 중 어느 것도 작동 하지 않습니다 . .mscpathext.msc
Synetech

2

Windows에서 실행 파일을 나타내는 파일 이름 확장자는 무엇입니까?

무엇을 나타내는가?

나는 그 질문이 현재 약간 혼란스럽게 들리지만 그 질문은 중요하다는 것을 알고 있습니다. 중요한 이유를 설명하면 질문이 더 명확 해집니다.

하지만 켄 화이트의 대답 (명령 프롬프트의 "환경"에서)를 PATHEXT 변수의 멋진 짧은 대답은, 그 대답은 당신을 위해 잘 작동 할 수있다, 대답은 불완전하다. 불완전한 이유는 당신이하려는 일에 따라 정답이 다르기 때문입니다.

예를 들어, 다음을 시도 할 수 있습니다.

  • 전체 파일 이름을 입력하여 "전통적인 명령 프롬프트"( "CMD")에서 프로그램을 실행하십시오.
  • 기본 파일 이름을 입력하고 확장자는 그대로두고 "전통적인 명령 프롬프트"( "CMD")에서 프로그램을 실행하십시오.
  • "전통적인 명령 프롬프트"( "CMD")에 내장 된 "start"명령을 사용하십시오.
  • PowerShell에서 프로그램 실행
  • 시작 메뉴에있는 "실행"메뉴 항목에서 프로그램을 실행하십시오.
  • 확장명으로 끝나는 파일과 관련된 아이콘을 두 번 클릭하여 탐색기에서 프로그램을 실행하십시오.
  • 다운로드 한 파일을 열도록 Microsoft Internet Explorer에 지시하십시오.
  • Microsoft Windows API의 기능을 사용하여 프로그램을 실행하십시오. (이것은 최종 사용자에게는 일반적이지 않지만 컴퓨터 프로그래머가 수행 할 수있는 정보이므로 관련 정보가 있습니다.)

이러한 프로그램 실행 방법 중 일부는 지원되는 파일 이름 확장자를 결정하는 다른 방법을 사용할 수 있습니다. 특히 CMD 사용은 실행 메뉴와 다를 수 있습니다.

예를 들어, Wes의 수수께끼 블로그 : Windows Run Command 사용자 지정 ... 은 레지스트리 키를 포함하여 검사중인 다른 위치를 나타냅니다.

대답은 사용중인 Microsoft Windows 버전에 따라 다를 수도 있습니다. Windows 10에서는 명령 프롬프트에 zip 파일 이름을 입력하고 Windows 탐색기를 열었습니다. Windows XP에서는 작동하지 않는다는 것을 기억합니다 (Windows XP에서는 "start filename.zip"을 입력하고 같은 종류의 효과를 얻을 수 있습니다). 따라서 내 메모리에 결함이 있거나 Microsoft가 최신 버전의 Windows에서 개선하려고했습니다. (나를 위해, 후자)

Windows 10의 기존 명령 프롬프트 ( "CMD"실행)에서 zip 파일의 위치 ( "CD"명령 사용)로 이동하여 "filename.zip"을 입력하면 파일이 열립니다. 해당 위치로 이동하여 "filename"( ". zip"파일 확장명 제외)을 입력하면 Windows에서 파일을 찾지 못합니다. 그러나 " ECHO %PATHEXT%"를 실행 한 다음 " SET PATHEXT=%PATHEXT%;.ZIP"(및 " ECHO %PATHEXT%"를 다시 사용하여 원하는 효과가 있는지 확인한 경우)를 실행하면 "filename"을 입력하면 명령 프롬프트에서 .ZIP 파일을 찾습니다. 이것이 % PATHEXT % 변수의 영향입니다.

ASSOC명령 을 실행하여 다른 확장명 목록을 볼 수 있습니다 . 예를 들어, 해당 명령을 실행하면 다음을 포함하여 여러 줄의 출력이 표시됩니다 (내 시스템에서)- " .zip=CompressedFolder". 그런 다음 " FTYPE | FIND /I "CompressedFolder"" 를 입력하여 실행되는 것을 볼 수 있습니다 . (이것은 기존의 명령 행을위한 것입니다. PowerShell은 이스케이프 처리되지 않은 따옴표를 좋아하지 않습니다.) ( FTYPE그 명령 행의 나머지 부분없이 " " 만 입력 하면 다른 확장에 대한 출력이 더 많이 나타납니다.)

ASSOC | FIND /C "."Windows 10 컴퓨터에서 " "를 입력하면 파일 연결을 확인할 때 339 줄의 출력이있는 것을 알 수 있습니다.

MS KB 162059 는 Internet Explorer가 Office 문서를 여는 방식을 조정하는 것에 관한 것입니다.

따라서 기본 실행 파일 목록을 요청하는 것은 너무 모호합니다. Microsoft Windows의 구성 요소마다 다른 리소스를 사용할 수 있으므로 정확한 답변을 얻으려면 질문을보다 구체적으로 지정해야합니다.

이 질문은 탐색기를 사용하여 아이콘을 두 번 클릭했다고 언급했습니다. 사용 된 실행 파일 목록을 보려면 레지스트리를 확인하고 싶을 것입니다. 명령 프롬프트에서이를 실행할 수 있습니다.

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

(내가 여기에 나열하지 않을 것입니다. 내 Windows 10 컴퓨터에는 286 개가 있습니다.)

확장명이 나열됩니다. 확장에 대한 세부 사항을 포함하여 자세한 정보를 보려면 다음을 수행하십시오.

reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts /s

따라서 지금까지 알 수 있듯이이 무고한 질문은 실제로 매우 복잡한 주제가 될 수 있습니다. Windows의 단일 구성 요소가 파일 이름 확장명을 결정할 수있는 방법을 완전히 다루기 위해 질문에 대해 구체적으로 설명 해야하는 이유에 대한 사례를 작성했다고 생각합니다. 간단히 말해서, Windows에는 다른 방식으로 동작하는 여러 구성 요소가 있기 때문에 Windows에 대한 단일 대답은 없습니다. 잘만되면 나는 그것을 보여주기 시작했고 관련 정보를 보여주는 추가 자료를 지적했다.

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