Windows 7에서 프로그램이 어떻게 실제 .lnk 파일을 열도록 설득합니까?


37

.lnkWindows 의 파일은 다른 파일의 바로 가기를위한 실제 파일입니다. 그러나 실제로 .lnk파일 자체 의 내용을보고 싶습니다 . 문자 그대로 불가능하다는 것을 알게되었습니다. 무엇을 시도하든 내 응용 프로그램은 가리키는 파일의 내용을 엽니 다 (텍스트 또는 16 진수 편집기로 드래그 앤 드롭, 파일 | 텍스트 또는 16 진수 편집기에서 열기 등).

프로그램 이 가리키는 파일 대신 .lnk 파일실제로 열도록 프로그램에 지시 할 수있는 방법 이 있습니까?


3
언제든지 이름을 .txt 또는 다른 이름으로 바꿀 수 있습니다. 일반적으로 이로 인해 데이터가 손실되지는 않습니다.
Jon

1
@Chipperyman 그렇지 않으면 작동하지 않습니다. .lnk새로운 확장자로 파일 이름을 쉽게 바꿀 수 없습니다 .
287352

답변:


19

바로 가기 열기

바로 가기를 편집하려면 먼저 바로 가기를 열어야하며 까다 롭습니다. 에서 어떤 경우에 당신은 명령 줄 인수를 사용하여로드 바로 가기 파일에 프로그램을 강제 할 수 있습니다 :

"X:\Path\to\program.exe" "X:\my shortcut.lnk"

그러나 링크 대상 또는 실제 바로 가기 파일의로드 여부는 프로그램에 따라 다릅니다. 다음은 무료 16 진 편집기를 즉시 지원하는 일부 무료 16 진 편집기 목록입니다.


해결 방법

바로 가기 파일의 내용을로드 할 수없는 경우, 당신은 열 수 있습니다 프롬프트 명령을 하고 이름을 변경 .lnk다른, 존재하지 않는 확장 등으로 파일 .lne:

cd /d "X:\Folder\containing\shortcuts"
ren "my shortcut.lnk" "my shortcut.lne"

파일이 여러 개인 경우 한 번에 모든 파일 이름을 바꿀 수도 있습니다.

ren *.lnk *.lne

그러면 바로 가기를 일반 파일처럼 취급 할 수 있습니다. 완료되면 이름을 다시 바꾸어 일반적인 기능을 복원하십시오.


추가 정보

바로 가기 또는 셸 링크 에는 특정 링크 대상 에 액세스하는 데 사용되는 메타 데이터 정보가 포함되어 있습니다 . Windows 셸에서 파싱하고 해석합니다. 공식 문서에서 :

쉘 링크 구조는 다음을 포함하여 최종 사용자에게 유용한 다양한 정보를 저장합니다.

  • 응용 프로그램을 시작하는 데 사용할 수있는 키보드 단축키입니다.

  • 설명 주석.

  • 응용 프로그램 동작을 제어하는 ​​설정

  • 추가 데이터 섹션에 저장된 선택적 데이터 .

출처 : [MS-SHLLINK] : 셸 링크 (.LNK) 이진 파일 형식-개요

바로 가기는 이진 파일로 저장되며 표준 텍스트 편집기를 사용하여 편집 할 수 없습니다. 일반적인 .lnk파일은 내부적으로 다음과 같습니다.

00000000  4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00  L...........À...
00000010  00 00 00 46 DC 03 00 02 20 00 00 00 C6 EF 52 BE  ...FÜ... ...ÆïR¾
00000020  10 04 CA 01 C6 EF 52 BE 10 04 CA 01 60 45 8A 67  ..Ê.ÆïR¾..Ê.`EŠg
00000030  20 04 CA 01 00 9A 04 00 00 00 00 00 01 00 00 00   .Ê..š..........

처음 20 바이트는 항상 다음과 같습니다.

4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00 00 00 00 46

추가 자료


HxD를 사용하여 File | Open실제로 열면 .lnk파일 이 열린 것 같습니다 . 감사.
Jez

@Jez 추가 정보를 포함하도록 게시물을 업데이트했습니다. 더 궁금한 점이 있으면 알려주세요.
and31415

16

나는 이것을 시도했고 그것은 Windows 8.1에서 나를 위해 작동합니다 :

LNK메모장에서 파일 열기 :

  • 메모장 창으로 끌어다 놓기 만하면됩니다. 당신이에서 열 경우 Open대화 메모장이 열립니다 EXE에 의해 가리키는 파일 LNK파일을.

HxD 16 진 편집기LNK 에서 파일 열기 :

  • 열기 대화 상자 ( FileOpen)를 사용하여 파일을 열 듯이 파일을여십시오

LNK명령 프롬프트를 사용하여 파일 열기 :

  • LNK파일 이있는 폴더로 이동하여 다음 명령을 입력하십시오. TYPE SHORTCUTNAME.LNK

LNK거의 모든 프로그램에서 파일 열기 :

  • 명령 프롬프트를 시작하고 프로그램이있는 폴더로 이동 한 후 다음 명령을 사용하십시오. PROGRAM_NAME.EXE "path to LNK file"

8

.lnk 파일의 핵심은 Windows가이 파일을 다른 파일에 대한 링크로 취급하므로 편집하기 어려워 야한다는 것입니다!

아마도 왜 편집하고 싶은지 설명하면 도움이 될 것입니다. 마우스 오른쪽 버튼을 클릭하고 속성을 선택하여 .lnk 파일의 설정을 변경할 수 있습니다 .

실제로 편집하려면 특별한 도구가 필요합니다. 다음을 포함하여 몇 가지가 있습니다.

NB : 나는 이것들을 시도하지 않고 단지 구글을 시도했다.

최신 정보:

내가 왜 이것을 생각하지 않았는지 모르겠지만 PowerShell을 통해 속성을 편집 할 수 있습니다. 에서 스택 오버플로이 이전의 대답 :

Copy-Item $sourcepath $destination  ## Get the lnk we want to use as a template
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination)  ## Open the lnk
$shortcut.TargetPath = "C:\path\to\new\exe.exe"  ## Make changes
$shortcut.Description = "Our new link"  ## This is the "Comment" field
$shortcut.Save()  ## Save

이것은 Shell COM 개체를 사용하므로 WSH 또는 VBA를 사용하여 Office를 수행 할 수도 있습니다!


2
내용이 손상되었을 수 있다고 생각하고 16 진수 편집기에서 내용을 편집하고 싶습니다. 익스플로러가 내용을 제대로 말해 줄 수는 없습니다.
Jez

나는 그것을 다시 만드는 것이 밖에 없다고 생각합니까? 그렇다면 무엇이 손상되었는지 확실하지 않지만 편집기 중 하나를 사용해보십시오.
Julian Knight

1
글쎄, 적어도 Windows XP에서는 편집하기가 결코 어렵지 않았습니다. 실제로 프로그램을 심볼릭 링크와 유사하게 처리하도록 설득하는 것이 더 어려웠습니다. edit바로 가기 경로의 인수로 콘솔 앱을 실행 하면 바로 가기 파일이 열립니다. 바로 가기를 심볼릭 링크와 유사하게 처리하는 프로그램은 직접 셸 함수를 통해 구문 분석합니다. XP는 XP 이후 바로 가기처럼 보이는 심볼릭 링크를 사용 했습니까?
Ruslan

진행의 가격! 대부분의 앱이 무시하는 링크를 정의 할 수있는 메커니즘은 그리 중요하지 않습니다. .lnk를 직접 편집 해야하는 많은 이유를 모르겠습니다.
Julian Knight

3
@JulianKnight 인덱스로 작동하는 폴더에 배치하기 위해 프로그래밍 방식으로 생성하는 데 한 번 사용했습니다. 소프트웨어를 설치할 권한이 없다고 가정했지만 이미 VBA를 사용하고있었습니다. 템플릿 .lnk 수정은 처음부터 새로 생성하는 것보다 쉬웠습니다.
Chris H

4

.LNK 파일은 쉘에서 해석됩니다. 명령 프롬프트를 열고 .LNK 파일을 인수로 사용하여 편집 도구 (예를 들어 메모장이라고 함)를 호출하면 셸을 무시하고 .LNK 파일 자체의 내용을 열어야합니다.

notepad.exe shortcut.lnk

아뇨, 작동하지 않습니다. .lnk포인트가 가리키는 파일을 엽니 다 .
Jez

어떤 응용 프로그램에서 링크를 열려고합니까?
Wes Sayeed

3
맞지 않습니다. 이 답변을 시도했지만 작동합니다.
Vinayak

3
@Vinayak 이것은 대담한 진술입니다. 사용중인 상황에서는 작동하지만 Jez에서는 작동하지 않을 수 있습니다.
Jon

1

CMD 를 사용 하여 링크 파일을 매개 변수로 사용 하여 프로그램을 실행하면 해당 매개 변수가 그대로 프로그램에 전달됩니다. 링크 처리 방법을 결정하는 것은 프로그램에 달려 있습니다.

프리웨어 (및 휴대용) 16 진수 편집기 인 FRHED로 이것을 테스트했습니다 . 링크를 매개 변수로 전달하여 명령 줄에서 실행 하면 링크 자체에 링크 된 파일을 열 것인지 묻는 메시지가 표시됩니다 ( ) ( 없음 ), 또는 취소 .

이상하게도 FRHED File 메뉴에서 Open을 사용하면 묻지 않고 대상 파일이 열립니다.

XP 에서는 SendTo 컨텍스트 메뉴에 FRHED 가 있으며 CMD 와 동일한 방식으로 작동합니다 . Win7이 비슷하다고 생각합니다 (전용 응용 프로그램에 Win7 시스템을 사용하고 위와 같이 간단한 테스트를 수행하지만 구성이 엉망이 아닙니다).


1
그것은 Windows에서 프롬프트를 표시하지 않습니다. 그것은 당신에게 무엇을 요구하는 Frhed
Vinayak

아주 옳다 : 어리석은 일-나는 대답을 바꿀 것이다.
AFH

메모장SendTo메뉴에 넣는 것이 매우 유용하다는 것을 알았습니다. 메모장에서 모든 파일 (바로 가기 포함)을 열 수있게했습니다.
Scott

최종 (?) 관찰 : DOS 파일보기 기능은 링크에 대해 아무것도 알지 못하므로 Windows 파일 열기와 달리 특별한 DOS 처리를하지 않으므로 DOS 기반보기 또는 편집 프로그램은 항상 대상을 절대로 링크를 열지 않습니다. .
AFH 2016 년

1

이러한 파일을 자주 편집해야하는 경우에는 SendTo 폴더에 notepad.exe 바로 가기를 추가하십시오 (Win 7 : C : \ Users \ USER \ AppData \ Roaming \ Microsoft \ Windows \ SendTo). 이는 "Send to notepad.exe"를 Rt에서 사용할 수있게합니다. 상황에 맞는 메뉴를 클릭하십시오. .ink 파일이 열리고 notepad.exe에 편집 및 저장 될 수 있습니다.


0

.lnk 파일은 Explorer.EXE와 같은 상위 레벨 구성 요소가 조작을 지정할 때까지 파일입니다. 더 낮은 (NTFS) 레벨에서는 여전히 데이터 스트림을 포함하여 정상적인 구조를 갖습니다. 특히 전체 내용이 foo.lnk::$DATA스트림에 있습니다. 모든 고급 도구가 해당 구문을 인식하지는 않습니다. 파일 이름이 이상하다고 가정하고 전달하면 .lnk 내용을 얻습니다.

예를 들어 명령 줄 MORE < foo.lnk::$DATA > con에서 데이터를 인쇄하지만 약간 횡설수설입니다 (부분은 이진입니다)

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