批处理 | 创建指定位置快捷方式

桌面快捷方式是我们安装商业软件常见的一个步骤,如果没有桌面快捷方式,我们通常的做法是找到软件安装目录,然后发送快捷方式到桌面。这里小白要跟大家聊聊的是使用批处理的方式,发送指定文件到桌面快捷方式

图文 / 丁建雄

小白是单纯为兴趣而写作的独立创作人,如果您喜欢小白的文章,欢迎关注、交流、分享(引用请链接到本文)。

Heaven's bay By [Herman van den Berge](https://500px.com/brains11)

程序

直接上代码

@echo off
::设置程序或文件的完整路径(必选)
set Program=E:\software\happy\09Platform\09Platform.exe
 
::设置快捷方式名称(必选)
set LnkName=09
 
::设置程序的工作路径,一般为程序主目录,此项若留空,脚本将自行分析路径
set WorkDir=
 
::设置快捷方式显示的说明(可选)
set Desc=测试
 
if not defined WorkDir call:GetWorkDir "%Program%"
(echo Set WshShell=CreateObject("WScript.Shell"^)
echo strDesKtop=WshShell.SpecialFolders("DesKtop"^)
echo Set oShellLink=WshShell.CreateShortcut(strDesKtop^&"\%LnkName%.lnk"^)
echo oShellLink.TargetPath="%Program%"
echo oShellLink.WorkingDirectory="%WorkDir%"
echo oShellLink.WindowStyle=1
echo oShellLink.Description="%Desc%"
echo oShellLink.Save)>makelnk.vbs
echo 桌面快捷方式创建成功!
makelnk.vbs
del /f /q makelnk.vbs
exit
goto :eof
:GetWorkDir
set WorkDir=%~dp1
set WorkDir=%WorkDir:~,-1%
goto :eof

把这段代码复制到记事本中,命名为seturl.bat,就可以啦。

关键点分析

很基础的东西就先不解释了,这里重点介绍一些需要注意的点。

@echo off 的意思是取消回显,这样这段以下的命令不显示命令本身,只显示执行结果。

我们知道要实现创建快捷方式,我们需要这样几个关键步骤:

S1:设定源的URL地址

S2:设定目标位置的URL地址

S3:设定快捷方式名称

这里我们使用的是 CreateObject() 方法,里面有很多参数可选,对于本例,最重要的几个参数就是以上三个步骤中提到的参数。

其中,(必选)部分是必须根据自己的实际情况修改的,可选部分可以不必修改,可以通用。

这里,着重强调的是 WshShell.SpecialFolders() 方法,参见 微软官方文档。这里有一个叫做 SpecialFolders Property 的参数,也就是你想要的特殊文件夹的位置,微软提供了16个参数可选,分别如下

AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates

相信各位应该能大概猜到这些名字对应的目录,如果不清楚也没关系,尝试一下就好了。这里,由于我们创建的是桌面快捷方式,所以选择的参数是 Desktop

至于其他的参数,注释里面应该写的很清楚,这里就不再赘述了。

关于编码方式的提醒

这段程序是参考的某篇博文的(不好意思实在找不到了,等找到了再补上链接)。

在运行过程中cmd中会出现乱码,而且鼠标悬停显示也出现乱码,但是名称是正确的。后来,我们找到了解决方法,就是右击bat文件,选择编辑--文件--另存为,在保存 按钮旁边有一个编码 选项,选择 ansi 编码方式就可以解决问题了。

编码方式解决方案

结语

最近,临近暑假,但是研究生的生活却没什么大的变化。变化的或许只是心境,我想也是时候转换转换思维了,年轻的时候,多尝试一些新的东西,以后的路才会越走越宽。我喜欢在不同的状态下进行切换,因为这样比较有乐趣!

好啦,这次的分享就到这里啦,换个生活,换个心情~


End !

参考文献
SpecialFolders Property

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,597评论 9 467
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,602评论 25 708
  • 姗姗打来电话,昨天医院给她家杨哥下了病危通知书,杨哥怕是熬不过这两天了。我听到消息时,不禁泪奔。 杨哥是我老公的大...
    路元阅读 327评论 0 2
  • 红薯已养在水中十日,多日雾霾,少见阳光。我也只是偶尔想起,就给它浇点水,拍个照,留个影,不想十日的光阴竟然变化如此...
    时光痕迹阅读 152评论 0 1