Windows의 명령 프롬프트에서 .LNK 바로가기를 어떻게 구문 분석할 수 있나요?

Windows의 명령 프롬프트에서 .LNK 바로가기를 어떻게 구문 분석할 수 있나요?

폴더에 대한 바로가기가 있는데 명령 프롬프트에서 열고 싶습니다. 명령 프롬프트가 바로가기의 대상 위치로 즉시 변경되기를 원합니다. 대신 명령 프롬프트에서 바로가기를 실행하려고 하면 Windows 탐색기에서 폴더가 열립니다.

명령 프롬프트에서 바로 가기 파일(.LNK)을 구문 분석하고 바로 가기의 대상 폴더로 전환하려면 어떻게 해야 합니까?

답변1

CMD를 시작하면 C:\Users\dave>가 표시되지만 cd ../../를 누르지 않고도 디렉터리를 C:\wamp\www로 변경하고 싶습니다. 그래서 'dave' 폴더에 'www' 폴더의 바로가기를 만들었습니다.

이는 전형적인XY 문제. CMD가 기본값 대신 항상 특정 디렉터리에서 열리도록 하려면 다음과 같이 바로가기의 속성을 변경하기만 하면 됩니다.

여기에 이미지 설명을 입력하세요

Windows 7에서 명령 프롬프트 바로 가기는 일반적으로 에 있으므로 Start Menu > All Programs > Accessories바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음에서 시작원하는 대로 필드를 선택하세요.


example이라는 이름의 배치 파일을 만들 수도 있습니다.d.bat한 줄이 포함되어 있습니다 cd /d c:\wamp\www. 배치 파일을 경로 어딘가에 배치하면 이제 CMD를 열고 다음을 입력하기만 하면 됩니다.특정 디렉토리로 변경하려면 유사한 솔루션이 더 많이 있습니다.


명령 프롬프트에서 바로 가기(.LNK) 파일을 구문 분석해야 하는 경우 다음을 다음과 같이 저장하십시오.ParseLnk.bat명령 프롬프트에서 다음과 같이 실행합니다 ParseLnk <LNK File>.

@echo off
echo set WshShell = WScript.CreateObject("WScript.Shell")>Tmp.vbs
echo set Lnk = WshShell.Createshortcut(WScript.Arguments(0))>>Tmp.vbs
echo WScript.Echo Lnk.TargetPath>>Tmp.vbs
for /f "delims=" %%d in ('cscript //nologo Tmp.vbs "%~1"') do del Tmp.vbs & cd /d "%%d"

답변2

나처럼 이 질문에 답한 사람이 있어 명령 프롬프트만 사용하여 .lnk 파일을 해독하려면 다음을 시도해 보세요.

type mylink.lnk|find "\"

답변3

문제는 .lnk 파일이 Word 등에서 docx 파일을 처리하는 것처럼 Explorer.exe라는 프로그램에 의해 해석되는 문서라는 것입니다. lnk 파일을 구문 분석하고 cd 명령을 실행하려면 일종의 스크립트를 작성해야 합니다.

내장된 cmdlet, 타사 cmdlet 또는 직접 작성할 수 있는 cmdlet을 통해 명령 프롬프트와 달리 PowerShell에서 원하는 작업을 수행할 수 있지만 잘 모르겠습니다.

답변4

다음과 같은 항목을 삽입하여 레지스트리에 시작 스크립트를 설정할 수 있습니다.

HKEY_CURRENT_USER\Software\Microsoft\Command Processor
Autorun REG_EXPAND_SZ <some-path-with-scripts>\msdos-startup.bat

그리고 이 "msdos-startup.bat" 파일에는 일종의 별칭을 정의하는 줄을 배치합니다(여기서는 위에서 Karan이 제공한 스크립트를 사용합니다).

doskey l=<some-path-with-scripts>\ParseLnk.bat $*

이제 명령줄 콘솔을 열면 위의 모든 내용이 실행되며 다음을 입력하기만 하면 됩니다.

l some-shortcut.lnk

관련 정보