![通过批处理文件 (.bat) 创建 Windows 快捷方式](https://linux22.com/image/521802/%E9%80%9A%E8%BF%87%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%20(.bat)%20%E5%88%9B%E5%BB%BA%20Windows%20%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F.png)
是否可以使用批处理脚本从 .exe 创建快捷方式?
答案1
只使用批处理?可能不行,除非你只是将快捷方式从“开始”菜单复制到其他地方。我们在构建/改进最新的部署流程时遇到了这个问题,某些团队希望快捷方式一切在他们的桌面上。
Windows NT Resource Kit 中有一个名为的实用程序shortcut.exe
可以执行此操作。我从未在 XP/2003/2008 上测试过它。
如果你可以使用 VBS,那么这个可以工作:
Set oWS = WScript.CreateObject("WScript.Shell")
sLinkFile = "C:\MyShortcut.LNK"
Set oLink = oWS.CreateShortcut(sLinkFile)
oLink.TargetPath = "C:\Program Files\MyApp\MyProgram.EXE"
' optional shortcut properties
' oLink.Arguments = ""
' oLink.Description = "MyProgram"
' oLink.HotKey = "ALT+CTRL+F"
' oLink.IconLocation = "C:\Program Files\MyApp\MyProgram.EXE, 2"
' oLink.WindowStyle = "1"
' oLink.WorkingDirectory = "C:\Program Files\MyApp"
oLink.Save
答案2
是的,可以创建快捷方式,有点像...您可以创建一个 .url 文件,其工作方式与快捷方式 (.lnk) 文件一样,至少从 Windows 98 到当前的 Windows 7。实际上用于 Windows 收藏夹书签的 .url 文件是一个简单的文本文件,它引用了一个 url 和一些其他信息。以下是从批处理文件创建它的简单示例:
@echo off
echo [InternetShortcut] >> Explorer.url
echo URL=C:\WINDOWS\EXPLORER.EXE >> Explorer.url
echo IconFile=C:\WINDOWS\EXPLORER.EXE >> Explorer.url
echo IconIndex=0 >> Explorer.url
这将导致创建一个名为 Explorer.url 的文件,其中包含以下内容:
[InternetShortcut]
URL=C:\WINDOWS\EXPLORER.EXE
IconFile=C:\WINDOWS\EXPLORER.EXE
IconIndex=0
双击它将像快捷方式一样运行该程序。
答案3
我认为没有办法直接从批处理文件创建批处理文件,也许你可以从 bat 中写入 Windows 注册表,或者如果你不想在这项工作中使用第三方应用程序,你可以下载 Shortcut.exe (www.optimumx.com) 并在 bat 中调用它。shortcut.exe /f:"%AllUsersProfile%\desktop\ShortcutName.pif" /a:c /t:folder:\MyApp ... i/image.icon.....
答案4
您是否考虑过使用符号链接?这可能是您能找到的最接近的替代方案。1. 只有管理员才能创建符号链接。2. 需要 VISTA 或更高版本的操作系统和 NTFS。
用于创建它们的实用程序是内置的:MKLINK.exe 和/或 LINKD.exe,并且可以轻松地在批处理文件中编写脚本。