Board logo

标题: VBS 取参数名称的问题 [打印本页]

作者: wewebb     时间: 2010-11-10 18:52    标题: VBS 取参数名称的问题
如果只取参数的名称,不要扩展名和路径。有简便的写法吗?


我只想到一个麻烦的写法:
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 ]

作者: slore     时间: 2010-11-11 13:27
Arguments 对象网上介绍还是详细。。。不解你要这样用?

作者: wewebb     时间: 2010-11-11 16:40
是这样的。我想将任意程序拖到 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 ]

作者: slore     时间: 2010-11-12 17:18
哦。
这个是字符串的处理了。
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