Войти

Показать полную графическую версию : [решено] Проблема передачи параметров в скрипт при запуске из ярлыка


gora
08-09-2011, 10:07
Создаю ярлык в контекстном меню SendTo. В свойствах ярлыка прописал запуск с ключом /Cs.
http://gora.7zsfx.info/test/vbs.PNG

В скрипте ChngCase.vbs первыми строками стоит проверка передаваемых параметров:F = WScript.Arguments(0)
MsgBox(F)
CurrentFile = WScript.Arguments(1)
MsgBox(CurrentFile)

Скрипт лежит по указанному в ярлыке адресу.
Устанавливаю курсор на файл -> ПКМ -> Отправить -> Щелчок по ярлыку "С заглавной буквы". Появляется первое окно в котором отображается полный путь к файлу под курсором. Закрываю это окно, но второго окна не появляется, а появляется ошибка Ошибка: Индекс выходит за пределы допустимого диапазона Появление ее понятно, т.к., в скрипт передан только один (второй, а не первый) параметр - полный путь к файлу, а куда пропадает ключ /Cs для меня остается загадкой!? :dont-know
Положил рядом со скриптом одноименный батник и изменил в ярлыке расширение на .bat, дабы проверить передачу параметров ярлыком.
Файл ChngCase.bat@Echo Off
Echo %1
Echo %2
Pause>Nul В результате запуска в консольном окне вижу как и положено две строки: в первой ключ, во второй путь к файлу под курсором.

Как правильно создать ярлык для запуска .vbs скрипта с передачей ему этих двух параметров: ключа и пути к файлу ?

SendMessage
08-09-2011, 13:26
Перед маршрутом скрипта вставьте сервер сценариев wscript.exe.

Кроме того можно разделить параметры на именованные и нет.
/Cs - его лучше проверять как именованный. Например:
If WScript.Arguments.Named.Exists("Cs") Then MsgBox "есть"
И тогда не будет иметь значение, каким по порядку он стоит. А неименованные в таком случае можно получать отдельным списком.
CurrentFile = WScript.Arguments.UnNamed.Item(0)
MsgBox(CurrentFile)




© OSzone.net 2001-2012