VBS使用createshortcut获取带空格的快捷方式的名称

时间:2011-02-04 16:27:34

标签: vbscript

我正在努力...使用谷歌并且没有得到这个答案!

我有一个代码,我打算在用户登录时运行,它会找到一个快捷方式并更新快捷方式位置以反映一些网络更改 - 但快捷方式中有空格,而VBS将找不到完整的目标路径......帮助!!!

快捷方式的当前目标是:

\\LANG-APPS2\Mandata\Warehouse\Programs\StartApp.exe  /sWH /ip192.168.73.124

但它只会将该位返回到.exe - 它错过了/sWH /ip192.168.73.124的最后一位

这是我的剧本:

On Error Resume Next

    wscript.echo "Checking Warehouse Shortcut..."
    Dim fso, folder, files, sFolder
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Shell = CreateObject("WScript.Shell")
    sFolder = Shell.SpecialFolders("Desktop")
    Set folder = fso.GetFolder(sFolder)
    Set files = folder.Files

    For each folderIdx In files
        fullname = fso.GetAbsolutePathName(folderIdx)
        Set shortcut = Shell.CreateShortcut(fullname)
        shortTarget = LCase(shortcut.TargetPath)
        shortWorkPath = shortcut.WorkingDirectory

        lnkFind = ".lnk"
        lnkSearch = instr(fullname, lnkfind)
        if lnkSearch > 0 then

            srvFind = "lang-apps2\mandata\warehouse\programs\startapp.exe"
            srvSearch = instr(shortTarget, srvFind)
            if srvSearch > 0 then

                pracFind = "Practice"
                pracSearch = instr(fullname, pracFind)
                if pracSearch > 0 then

                    wscript.echo "Warehouse Practice Shortcut Needs Updating!"
                    wscript.echo "Please wait while I sort that out for you......"
                    shortcut.TargetPath = """\\Lang-man\Warehouse\Programs\StartApp.exe /sWHPRAC /ip192.168.73.134"""
                    shortcut.WorkingDirectory = "\\Lang-man\Warehouse\Programs"
                    shortcut.save
                    wscript.echo "Warehouse Practice Shortcut Updated!"
                else

                    wscript.echo "Warehouse Live Shortcut Needs Updating!"
                    wscript.echo "Please wait while I sort that out for you......"
                    shortcut.TargetPath = """\\Lang-man\Warehouse\Programs\StartApp.exe /sWH /ip192.168.73.134"""
                    shortcut.WorkingDirectory = "\\Lang-man\Warehouse\Programs"
                    shortcut.save
                    wscript.echo "Warehouse Live Shortcut Updated!"
                end if
            end if
        end if

        set shortTarget=nothing
        set shortWorkPath=nothing
        set shortcut=nothing
    next
    wscript.echo "Finished"

1 个答案:

答案 0 :(得分:2)

来自MSDN上TargetPath属性的描述(由我添加的粗体):

  

此属性仅适用于快捷方式的目标路径。 快捷方式的任何参数都必须放在Argument的属性中。