中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 05:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » VBS 取参数名称的问题 查看 1,118 回复 3
楼 主 VBS 取参数名称的问题 发表于 2010-11-10 18:52 ·  中国 广东 珠海 联通
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线
如果只取参数的名称,不要扩展名和路径。有简便的写法吗?


我只想到一个麻烦的写法:
for each arg in Wscript.Arguments
for each n in split(arg,"\",-1,1)
FullName = n
next
name=split(FullName,".",-1,1)
msgbox name(0)

另外,那里有 VBS 关于各个对象的详解说明,能否给个链接,百度上好多是不全的。

[ Last edited by wewebb on 2010-11-10 at 18:54 ]
2 发表于 2010-11-11 13:27 ·  中国 北京 263网络通信电信数据中心
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
Arguments 对象网上介绍还是详细。。。不解你要这样用?
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
3 发表于 2010-11-11 16:40 ·  中国 陕西 西安 联通
初级用户
★★
积分 66
发帖 53
注册 2009-10-09 20:51
16年会员
UID 152852
性别 男
状态 离线
是这样的。我想将任意程序拖到 VBS 里就能够在桌面上生成以该程序命名的 lnk 快捷方式。所以要用去掉路径和扩展名。

代码如下:


set objsh=CreateObject("wscript.shell")
Desktop = Objsh.SpecialFolders("Desktop") '获取当前用户桌面路径

'获取参数的 文件名(不包括路径):
for each arg in Wscript.Arguments
for each n in split(arg,"\",-1,1)
name = n
next
name=split(name,".",-1,1)
next

strName = Desktop & "\" & name(0) & ".lnk" 'name(0) 就是参数文件名去除扩展名

set exeLink=Objsh.CreateShortCut( strName ) '在桌面上建立快捷方式
exeLink.Targetpath= Wscript.Arguments(0) '定义快捷方式执行程序的路径
ExeLink.Save


[ Last edited by wewebb on 2010-11-11 at 16:47 ]
4 发表于 2010-11-12 17:18 ·  中国 北京 263网络通信电信数据中心
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
哦。
这个是字符串的处理了。
targetpath = Wscript.Arguments(0)
sPos = Instrrev(targetpath,"\") + 1
ePos = Instrrev(targetpath,".")
If ePos > sPos Then
slen = ePos - sPos
Else
slen = Len(targetpath)
End If
name = Mid(targetpath,sPos,slen)
msgbox name
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
论坛跳转: