我有一个文件夹的快捷方式,我想从命令提示符中打开它。我希望命令提示符立即更改为快捷方式的目标位置。相反,如果我尝试在命令提示符下执行快捷方式,它只会在 Windows 资源管理器中打开该文件夹。
如何从命令提示符解析快捷方式文件(.LNK)并切换到快捷方式的目标文件夹?
答案1
当我启动 CMD 时,我看到 C:\Users\dave>,但我想将目录更改为 C:\wamp\www,而不必按 cd ../../。因此,我在“dave”文件夹中创建了“www”文件夹的快捷方式。
这是一个典型的XY问题。如果您希望 CMD 始终在特定目录而不是默认目录打开,您只需简单地更改快捷方式的属性,如下所示:
在 Windows 7 中,命令提示符快捷方式通常位于Start Menu > All Programs > Accessories
,因此只需右键单击快捷方式,选择属性并编辑开始于您喜欢的领域。
您还可以创建一个名为的批处理文件,例如d.bat其中包含一行cd /d c:\wamp\www
。将批处理文件放在路径中的某个位置,现在您需要做的就是打开 CMD 并输入d切换到特定目录。还有更多类似的解决方案。
如果你坚持要从命令提示符解析快捷方式 (.LNK) 文件,请将以下内容保存为解析链接程序并从命令提示符执行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)解释的文档,就像 Word 或其他程序会处理 docx 文件一样。您必须编写某种脚本来解析 lnk 文件并执行 cd 命令。
有可能您可以通过 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