프로그래밍 방식으로 파일 확장명을 Windows의 응용 프로그램과 연결


43

최근에 Windows를 다시 설치했으며 환경을 설정할 때 메모장 ++에서 편집 한 다양한 프로그래밍 언어에 대한 모든 연관성이 사라졌습니다 (자연스럽게).

나는 미래를 생각하고 있는데, 버튼을 클릭 할 때 파일 확장자 선택을 N ++과 자동으로 연결할 수있는 일종의 배치 파일을 갖는 것이 웅장하지 않을 것입니다. N ++ exe 등으로 탐색하는 기교를 훑어보십시오.

Default ProgramsWindows 7과 함께 제공 되는 유틸리티로는 이 작업을 수행 할 수 없습니다 . '만들어진'확장명에서만 작동하기 때문입니다.

그렇다면 프로그래밍 방식으로 파일 확장자를 Windows의 응용 프로그램과 연결할 수 있습니까?


태그별로 솔루션이 파워 쉘이어야합니까?
Richard

1
전혀, 단지 Windows 명령 행 중독자들의 관심을 끌려고 노력하는 것입니다. :)
deed02392

Windows 7-Vista에 내장되어 있으며 XP 용으로 다운로드 할 수있는 시스템 설정을 전송하려면 Windows 사용자 환경 전송을 사용하십시오. microsoft.com/download/en/details.aspx?id=7349
Moab

원래 Windows 설치를 더 이상 사용할 수 없으므로 옵션이 아닙니다.
deed02392

답변:


63

Ftype & Assoc을 사용하여이 문제를 해결하십시오 (스크립트 가능).

Assoc을 사용하여 파일 형식 가져 오기

>Assoc .txt

당신에게 제공합니다 :

.txt = txt 파일

그때

>Ftype txtfile=C:\Program Files (x86)\Notepad++\notepad++.exe %1

파일 유형을 알면 Ftype을 사용하여 파일 유형을 작업과 연결할 수 있습니다.

이것은 .php 파일에서 작동합니다 (일괄 파일로 가져 오십시오)

Assoc .php=phpfile
Ftype phpfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1

그리고이 줄을 복사하여 원하는 다른 텍스트 기반 파일을 추가 할 수 있습니다.


1
흥미롭게 >assoc .php도 파일 연결이 없다고 말합니까? 파일 형식을 여는 기본 프로그램을 지정하면이 방법으로 '등록'되지 않은 것으로 보입니다. 왜 그런가요?
deed02392

18
내가 모르는 두 가지 명령 줄 도구에 +1했습니다.
Ian Boyd

1
이 솔루션은 텍스트 파일을 이전에 할당 된 프로그램 (메모장)이 아닌 노트 패드 ++로 열도록합니다. 제출자가 요청한 것과 같이 등록되지 않은 새 파일 확장자 (예 : pl, py 또는 c)를 클릭하면 notepad ++가 열리지 않습니다.
Richard

1
@ deed02392 assoc 'Assoc .php = phpfile'과의 새로운 연결을 추가 할 수 있습니다
uSlackr

2
내 대답의 목적은 배치 파일을 작성하지 않고 assoc & ftype을 사용하는 방법을 보여주었습니다. 그러나 나는 함께 놀 것이다
uSlackr

5

Windows 10에서 나를 위해 일한 스크립트는 다음과 같습니다.

$exts=@("txt","log","csproj","sql","xml","flobble")
echo "## setting up file associations"
foreach ($ext in $exts){
    $extfile=$ext+"file"
    $dotext="." + $ext
    cmd /c assoc $dotext=$extfile
    cmd /c "ftype $extfile=""C:\Program Files (x86)\Notepad++\notepad++.exe"" %1"
    echo ""
}
  • 관리자 (고급) powershell 창에서 실행해야합니다.
  • 탐색기가 즉시 새로 고쳐지고 새 파일 아이콘이 표시되었습니다.

https://gist.github.com/timabell/bc90e0808ec1cda173ca09225a16e194

이 작업을 수행하는 데 필요한 정보에 대한 다른 답변 덕분입니다.


3

최소한 하나의 레지스트리 키를 작성하여 notepad ++에 ID와 경로를 제공 한 다음이를 사용하도록 등록하려는 각 내선 번호마다 하나씩 작성해야합니다.

ID와 경로를 만들려면 (경로가 올바른 위치를 가리키는 지 확인) :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\notepad_pp]
@=""

[HKEY_CLASSES_ROOT\notepad_pp\shell]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open\command]
@="\"C:\\Program Files (x86)\\Notepad++\\notepad++.exe\" \"%1\""

그런 다음 각 확장마다 하나씩 다음 비트를 계속 반복하십시오 (이 예에서는 .plPerl).

[HKEY_CLASSES_ROOT\.pl]
@="notepad_pp"

이 파일을 확장명으로 저장하면이 파일을 .reg두 번 클릭하고 항목을 레지스트리로 가져 오기를 확인함으로써 모든 확장명을 다시 연결할 수 있습니다.


1
흥미롭게도, 나는 찾고 있었고 Windows 7 이로 드 할 프로그램을 설정할 때 HKCR \ ext_auto_file \ shell \ open \ command에 값이 "C : \ Program Files \ Notepad ++ \ notepad ++ 인 항목을 만드는 것 같습니다. .exe ""% 1 ". 당신은 어디에서 왔습니까?
deed02392

ext_auto_file의 이름이 약간 더 의미가 있고 하나의 단일 항목을 가리키는 여러 파일 확장자로 기본적으로 동일합니다.
Richard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.