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