中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 网上看到的用批处理建立lnk快捷方式
作者:
标题: 网上看到的用批处理建立lnk快捷方式 上一主题 | 下一主题
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『楼 主』:  网上看到的用批处理建立lnk快捷方式


Sub bat
echo create_shortcut
start wscript -e:vbs "%~f0"
Exit Sub
End Sub

Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
Dim WshShell,pa
Set WshShell = WScript.CreateObject("WScript.Shell")
Pa = WshShell.CurrentDirectory
set oShellLink = WshShell.CreateShortcut(strDesktop & "\火炬之光.lnk")
oShellLink.TargetPath = pa & "\开始游戏.exe"
oShellLink.WindowStyle = 2
oShellLink.IconLocation = pa & "\开始游戏.exe, 0"
oShellLink.WorkingDirectory = pa
oShellLink.Save
真的很强大.我搞不懂SUB本来就不是可以运行的命令,可是少了它却不行了!

2010-6-15 09:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

批处理时:
Sub bat,批处理中因为不存在Sub,输出错误显示并跳过,在vbs中定义sub过程的name为bat
start wscript -e:vbs "%~f0",把整个批处理重新按vbs运行
Exit Sub,在vbs中从sub 过程中退出,在批处理中,只使用Exit,退出批处理
批处理也可以写成:
more +3<%~fs0>$.vbs
cscript //nologo $.vbs&del $.vbs
Exit
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
Dim WshShell,pa
Set WshShell = WScript.CreateObject("WScript.Shell")
Pa = WshShell.CurrentDirectory
set oShellLink = WshShell.CreateShortcut(strDesktop & "\火炬之光.lnk")
oShellLink.TargetPath = pa & "\开始游戏.exe"
oShellLink.WindowStyle = 2
oShellLink.IconLocation = pa & "\开始游戏.exe, 0"
oShellLink.WorkingDirectory = pa
oShellLink.Save
vbs:
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
Dim WshShell,pa
Set WshShell = WScript.CreateObject("WScript.Shell")
Pa = WshShell.CurrentDirectory
set oShellLink = WshShell.CreateShortcut(strDesktop & "\火炬之光.lnk")
oShellLink.TargetPath = pa & "\开始游戏.exe"
oShellLink.WindowStyle = 2
oShellLink.IconLocation = pa & "\开始游戏.exe, 0"
oShellLink.WorkingDirectory = pa
oShellLink.Save
[ Last edited by Hanyeguxing on 2010-6-15 at 12:01 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-15 11:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『第 3 楼』:  

这样用BAT建立快捷方式比建立*.url就好得多了。

也用不着ECHO来输出VBS来建立快捷方式了。

以前我以为没办法直接调用VBS来建立快捷方式,因为换行的代码太多了。

2010-6-15 18:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  Re 3 楼

也可以在BAT里面调用mshat来创建.lnk,不一定要生成临时的VBS。
.url就更简单了,echo几下就行了,更用不着VBS。



2010-6-15 20:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kidzgy
中级用户





积分 262
发帖 129
注册 2007-7-11
状态 离线
『第 5 楼』:  

url本来是个网址的形式的,根本不具有lnk快捷方式所具有的性质.所以要建立桌面图标尽量还是要lnk的好.

我想知道怎么调用mshat来建立lnk呢?能举个例子吗?

2010-6-15 21:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sun2052
新手上路





积分 3
发帖 3
注册 2009-10-2
状态 离线
『第 6 楼』:  


@echo off
set str=%*
call set str=%%str:%1=%%
mshta.exe VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%~n1.lnk""):b.TargetPath=""%~1"":b.Arguments=""%str%"":b.WorkingDirectory=""%~dp1"":b.Save:close")

::Arguments              目标程序参数
::Description            快捷方式备注
::FullName               返回快捷方式完整路径
::Hotkey                 快捷方式快捷键
::IconLocation           快捷方式图标,不设则使用默认图标
::TargetPath             目标
::WindowStyle            窗口启动状态
::WorkingDirectory       起始位置


2010-6-16 12:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by kidzgy at 2010-6-15 21:56:
url本来是个网址的形式的,根本不具有lnk快捷方式所具有的性质.所以要建立桌面图标尽量还是要lnk的好.

我想知道怎么调用mshat来建立lnk呢?能举个例子吗?

url和和lnk本身不同,所以不存在谁比谁好的问题



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-16 13:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: