Страница 1 из 1

Выполнить(run) передача параметра в ярлык (lnk) c параметром

Добавлено: Вт фев 02, 2010 20:01
_Johm
Пристрастился я к WinKey+R (RUN, выполнить) таким образом:
добавляю к переменной среды PATH путь к папке RUNBOX (где
ярлыки ссылающиеся на программы и скрипты vbs, js)

[отступление] по идее, я думал, что можно в RUNBOX
класть сами скрипты , но почему-то они не вызываються через
RUN, хотя, как я понимаю, они дожны, так как эти расширения
присутствуют в переменной среды PATHEXT;
но у меня не работает.

в скрипты я так же передаю аргументы, например, скрипт запускает
TheBat и передает мастер пароль. Эта конструкция работает -
lnk на vbs плюс параметр, но ограниченность функционала vbscript
относительно ожидания окон для передачи чего-нибудь, заставила
меня посмотреть в сторону AutoIt, и вот тут возникла проблема
в lnk, где в строке "объект" должно быть ссылка на autoit.exe c
параметром-скриптом au3, и во все это нужно передать
параметр-пароль через RUN).
Не срабатывает.

PATH=D:\TOTAL\RUNBOX;C:\WINDOWS...
D:\TOTAL\SCRIPTS\
thebat.au3
AutoIt3.exe

D:\TOTAL\RUNBOX\
thebat.lnk ссылаться на autoit.exe c параметром thebat.au3
ярлык должен запускаться через RUN c параметром

"объект" ярлыка:
%COMMANDER_PATH%\SCRIPTS\AutoIt3.exe thebat.au3
или
%COMMANDER_PATH%\SCRIPTS\AutoIt3.exe %COMMANDER_PATH%\SCRIPTS\thebat.au3
так не работает.

Тут что-то с логикой, переменными среды в ОС, чего я не знаю.
Возможно ли сделать такую схему работоспособной?
Можно конечно компилировать au3 в exe, но гибкость пропадет.
Можно поменять заголовок, если есть идея как сформулировать

Добавлено: Вт фев 02, 2010 20:09
Venclav
%COMMANDER_PATH% действует только в среде Тотала. Винда (глобально) об этой переменной не знает.
Попробуй задать жестко в системных переменных путь к Тоталу.

Так и есть: работает!
_Johm писал(а):[отступление] по идее, я думал, что можно в RUNBOX

класть сами скрипты , но почему-то они не вызываються через

RUN, хотя, как я понимаю, они дожны, так как эти расширения

присутствуют в переменной среды PATHEXT;

но у меня не работает.
Скрипты вызываются…

Добавлено: Вт фев 02, 2010 20:32
_Johm
vbs через lnk в RUN у меня работают с параметром.
А про %COMMANDER_PATH%, думал писать- не писать и
не написал, у меня эта переменная среды, так же задана
через SET, представим что в первом посте, вместо
%COMMANDER_PATH% любая другая переменная %MYDIR%

К тому же, если в lnk использовать %COMMANDER_DRIVE% или
%COMMANDER_PATH% все будет работать

например lnk c %COMMANDER_PATH%\PROGS\PROFILE\abook\Ab.exe
работает и даже без этой переменной, заданой через SET

Добавлено: Вт фев 02, 2010 20:34
_Johm
Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript

Добавлено: Чт фев 04, 2010 19:34
_Johm
[решено]
Исправляю свою ошибку. Хотя от части был прав:

Переменную COMMANDER_PATH, не заданную через SET,
можно использовать в vbscript'ах, интерпритатор ее
разворачивает, но AutoIt3.3.4 этим похвастаться не может,
то есть,
lnk, ссылающийся на vbscript, запущенный с параметром через
"Выполнить", отработает

Код: Выделить всё

объект ярлыка:
[%COMMANDER_PATH%\SCRIPTS\thebat.vbs
где в самом thebat.vbs присутствует COMMANDER_PATH,
но
с AutoIt это не прокатит, запинка происходит в самом
скрипте au3 - не разворачивает переменную
COMMANDER_PATH.

Если, явно задать COMMANDER_PATH через SET, то
такое:

Код: Выделить всё

объект ярлыка bat.lnk
%COMMANDER_PATH%\SCRIPTS\autoit\AutoIt3.exe "thebat.au3"
работает.

Например,
WinKey+R
воодим

Код: Выделить всё

bat somepassword
Запускается bat.lnk на AutoIt3.exe thebat.au3 somepassword

Добавлено: Ср фев 10, 2010 10:53
tarbo
_Johm писал(а):Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript
посмотрите значение переменной %PATHEXT%

Добавлено: Ср фев 10, 2010 14:08
_Johm
Она наверно у всех такая:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

Я говорю про то, что даже так скрипт через RUN-диалог нужно все
равно вызвать с расширением.., то есть экзешник somefile.exe - вы
вводите только имя somefile {ENTER}, а, если это скрипт, то нужно
вводить somescript.vbs {ENTER}

Если создать на это скрипт ярлык (lnk), то поведение такое же как с exe.

Добавлено: Ср фев 10, 2010 14:54
_Johm
tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики
посмотрите значение переменной %PATHEXT%
?

Добавлено: Вс фев 14, 2010 18:34
tarbo
_Johm писал(а):tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики
Это вы к чему? Я предположил, что у вас не прописаны расширения в переменной. Значит эти расширения для запуска файлов без расширения только для путей %PATH%. Если вы хотите запускать, то пропишите пути в переменную. Какого ответа вы еще ждали я не знаю, а до этого и самому не сложно додуматься.

Добавлено: Пн фев 15, 2010 07:30
_Johm
tarbo писал(а):Значит эти расширения для запуска файлов без расширения только для путей %PATH%.
Ничего это не значит.
И ничего не надо прописывать в переменные для проверки:
положите файл test.vbs

Код: Выделить всё

WSCript.Echo "test"
в папку C:\WINDOWS
и попробуйте без расширения запустить его через RUN.
Получилось? Думаю нет.

Вот я и не доумеваю, почему проблема с vbs, когда как с cmd bat это работает?

Добавлено: Пн фев 15, 2010 09:20
Avada
_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.

Добавлено: Пн фев 15, 2010 09:35
_Johm
Avada
ЕМНИП, еще lnk, которой вообще нет в PATHEXT. А повторяюсь я для особо одаренных, которые советуют проверить переменные среды.
[тема закрыта]

Добавлено: Пн фев 15, 2010 09:52
MVV
Avada писал(а):_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.
И это имеет силу еще со времен черных экранов. :)
Порядок как раз такой.

Кстати, LNK без расширения Windows тоже выполняет, если он находится в папке, указанной в переменной PATH - только что проверял. Поэтому для запуска всяких там скриптов нужно создавать ярлыки, которые будут запускать соответствующую оболочку. Дополнительные параметры, которые нужно передать скрипту, можно указывать прямо после имени ярлыка в поле запуска.

Про PATHEXT я тоже посмотрел, она влияет лишь на то, какие файлы без указания расширения будут запускаться из командной строки - если присвоить переменной ерунду, VBS из командной строки без указания расширения запустить не удастся, как и LNK, которого там по умолчанию и нет - пока не пропишешь его там вручную, из командной строки он без указания расширения запускаться не будет.

Добавлено: Пн фев 15, 2010 10:06
_Johm
Вообще-то, я говрою про RUN-диалог, и, если, что касаеться перменных PATH и PATHEXT, как выяснилось, благодаря MVV, vbs запускаеться без расширения в cmd, то с RUN по-другому.
Про ярлык на скрипт я талдычу с начала темы (тут, MVV, мне Америку не открываешь...)

Значит, где-то в другом месте определяется поведение RUN, раз они различаются с cmd. Скорее всего, это shell32.dll, думаю смысла нет обсуждать...