VBS Использование createhortcut, чтобы получить имя ярлыка с пробелами - PullRequest
0 голосов
/ 04 февраля 2011

Я борюсь ... использовал Google и не нашел ответов на этот вопрос!

У меня есть код, который я собираюсь запустить при входе пользователя, который найдет ярлык и обновитрасположение ярлыка, чтобы отразить некоторые изменения в сети - но ярлык содержит пробелы, и 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 Ответ

2 голосов
/ 04 февраля 2011

Из описания свойства TargetPath на MSDN (выделено мной жирным шрифтом):

Это свойство только для целевого пути ярлыка. Любые аргументы для ярлыка должны быть помещены в свойство аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...