Как проанализировать ярлык .LNK из командной строки в Windows?

Как проанализировать ярлык .LNK из командной строки в Windows?

У меня есть ярлык для папки, и я хочу открыть его из командной строки. Я хочу, чтобы командная строка немедленно перешла в целевое расположение ярлыка. Вместо этого, если я попытаюсь выполнить ярлык в командной строке, он просто откроет папку в проводнике Windows.

Как проанализировать файл ярлыка (.LNK) из командной строки и переключиться на целевую папку ярлыка?

решение1

При запуске CMD я вижу C:\Users\dave>, но я хочу сменить каталог на C:\wamp\www, не нажимая cd ../../. Поэтому я создал ярлык папки «www» в папке «dave».

Это типичныйпроблема XY. Если вы хотите, чтобы CMD всегда открывался в определенном каталоге вместо каталога по умолчанию, все, что вам нужно сделать, это просто изменить свойства ярлыка следующим образом:

введите описание изображения здесь

В Windows 7 ярлык командной строки обычно находится в Start Menu > All Programs > Accessories, поэтому просто щелкните правой кнопкой мыши по ярлыку, выберите «Свойства» и отредактируйтеНачинатьполе по вашему вкусу.


Вы также можете создать пакетный файл, назвав его, например,д.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 — это документ, который интерпретируется программой Explorer.exe — точно так же, как файл docx обрабатывается Word или чем-то еще. Вам придется написать какой-то скрипт для разбора файла lnk и выполнения команды cd.

Возможно, в PowerShell (в отличие от командной строки) есть возможность сделать то, что вам нужно, с помощью командлета, встроенного, стороннего или написанного вами самостоятельно, но я не знаю.

решение4

Вы можете задать сценарий запуска в своем реестре, вставив следующий элемент:

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

И в этом файле "msdos-startup.bat" вы помещаете такую ​​строку, которая определяет некий псевдоним (здесь я использую скрипт, предоставленный Караном выше):

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

Теперь, когда вы откроете консоль командной строки, все вышеперечисленное будет выполнено, и вам просто нужно будет ввести:

l some-shortcut.lnk

Связанный контент