Выполнить(run) передача параметра в ярлык (lnk) c параметром
Модераторы: CaptainFlint, Nik, d-view, Моторокер, Avada
Выполнить(run) передача параметра в ярлык (lnk) c параметром
Пристрастился я к 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, но гибкость пропадет.
Можно поменять заголовок, если есть идея как сформулировать
добавляю к переменной среды 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, но гибкость пропадет.
Можно поменять заголовок, если есть идея как сформулировать
%COMMANDER_PATH% действует только в среде Тотала. Винда (глобально) об этой переменной не знает.
Попробуй задать жестко в системных переменных путь к Тоталу.
Так и есть: работает!
Попробуй задать жестко в системных переменных путь к Тоталу.
Так и есть: работает!
Скрипты вызываются…_Johm писал(а):[отступление] по идее, я думал, что можно в RUNBOX
класть сами скрипты , но почему-то они не вызываються через
RUN, хотя, как я понимаю, они дожны, так как эти расширения
присутствуют в переменной среды PATHEXT;
но у меня не работает.
Коркодил
vbs через lnk в RUN у меня работают с параметром.
А про %COMMANDER_PATH%, думал писать- не писать и
не написал, у меня эта переменная среды, так же задана
через SET, представим что в первом посте, вместо
%COMMANDER_PATH% любая другая переменная %MYDIR%
К тому же, если в lnk использовать %COMMANDER_DRIVE% или
%COMMANDER_PATH% все будет работать
например lnk c %COMMANDER_PATH%\PROGS\PROFILE\abook\Ab.exe
работает и даже без этой переменной, заданой через SET
А про %COMMANDER_PATH%, думал писать- не писать и
не написал, у меня эта переменная среды, так же задана
через SET, представим что в первом посте, вместо
%COMMANDER_PATH% любая другая переменная %MYDIR%
К тому же, если в lnk использовать %COMMANDER_DRIVE% или
%COMMANDER_PATH% все будет работать
например lnk c %COMMANDER_PATH%\PROGS\PROFILE\abook\Ab.exe
работает и даже без этой переменной, заданой через SET
[решено]
Исправляю свою ошибку. Хотя от части был прав:
Переменную COMMANDER_PATH, не заданную через SET,
можно использовать в vbscript'ах, интерпритатор ее
разворачивает, но AutoIt3.3.4 этим похвастаться не может,
то есть,
lnk, ссылающийся на vbscript, запущенный с параметром через
"Выполнить", отработает
где в самом thebat.vbs присутствует COMMANDER_PATH,
но
с AutoIt это не прокатит, запинка происходит в самом
скрипте au3 - не разворачивает переменную
COMMANDER_PATH.
Если, явно задать COMMANDER_PATH через SET, то
такое:работает.
Например,
WinKey+R
воодимЗапускается bat.lnk на AutoIt3.exe thebat.au3 somepassword
Исправляю свою ошибку. Хотя от части был прав:
Переменную COMMANDER_PATH, не заданную через SET,
можно использовать в vbscript'ах, интерпритатор ее
разворачивает, но AutoIt3.3.4 этим похвастаться не может,
то есть,
lnk, ссылающийся на vbscript, запущенный с параметром через
"Выполнить", отработает
Код: Выделить всё
объект ярлыка:
[%COMMANDER_PATH%\SCRIPTS\thebat.vbsно
с AutoIt это не прокатит, запинка происходит в самом
скрипте au3 - не разворачивает переменную
COMMANDER_PATH.
Если, явно задать COMMANDER_PATH через SET, то
такое:
Код: Выделить всё
объект ярлыка bat.lnk
%COMMANDER_PATH%\SCRIPTS\autoit\AutoIt3.exe "thebat.au3"Например,
WinKey+R
воодим
Код: Выделить всё
bat somepasswordОна наверно у всех такая:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
Я говорю про то, что даже так скрипт через RUN-диалог нужно все
равно вызвать с расширением.., то есть экзешник somefile.exe - вы
вводите только имя somefile {ENTER}, а, если это скрипт, то нужно
вводить somescript.vbs {ENTER}
Если создать на это скрипт ярлык (lnk), то поведение такое же как с exe.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
Я говорю про то, что даже так скрипт через RUN-диалог нужно все
равно вызвать с расширением.., то есть экзешник somefile.exe - вы
вводите только имя somefile {ENTER}, а, если это скрипт, то нужно
вводить somescript.vbs {ENTER}
Если создать на это скрипт ярлык (lnk), то поведение такое же как с exe.
Это вы к чему? Я предположил, что у вас не прописаны расширения в переменной. Значит эти расширения для запуска файлов без расширения только для путей %PATH%. Если вы хотите запускать, то пропишите пути в переменную. Какого ответа вы еще ждали я не знаю, а до этого и самому не сложно додуматься._Johm писал(а):tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики
Ничего это не значит.tarbo писал(а):Значит эти расширения для запуска файлов без расширения только для путей %PATH%.
И ничего не надо прописывать в переменные для проверки:
положите файл test.vbs
Код: Выделить всё
WSCript.Echo "test"и попробуйте без расширения запустить его через RUN.
Получилось? Думаю нет.
Вот я и не доумеваю, почему проблема с vbs, когда как с cmd bat это работает?
И это имеет силу еще со времен черных экранов.Avada писал(а):_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.
Порядок как раз такой.
Кстати, LNK без расширения Windows тоже выполняет, если он находится в папке, указанной в переменной PATH - только что проверял. Поэтому для запуска всяких там скриптов нужно создавать ярлыки, которые будут запускать соответствующую оболочку. Дополнительные параметры, которые нужно передать скрипту, можно указывать прямо после имени ярлыка в поле запуска.
Про PATHEXT я тоже посмотрел, она влияет лишь на то, какие файлы без указания расширения будут запускаться из командной строки - если присвоить переменной ерунду, VBS из командной строки без указания расширения запустить не удастся, как и LNK, которого там по умолчанию и нет - пока не пропишешь его там вручную, из командной строки он без указания расширения запускаться не будет.
Вообще-то, я говрою про RUN-диалог, и, если, что касаеться перменных PATH и PATHEXT, как выяснилось, благодаря MVV, vbs запускаеться без расширения в cmd, то с RUN по-другому.
Про ярлык на скрипт я талдычу с начала темы (тут, MVV, мне Америку не открываешь...)
Значит, где-то в другом месте определяется поведение RUN, раз они различаются с cmd. Скорее всего, это shell32.dll, думаю смысла нет обсуждать...
Про ярлык на скрипт я талдычу с начала темы (тут, MVV, мне Америку не открываешь...)
Значит, где-то в другом месте определяется поведение RUN, раз они различаются с cmd. Скорее всего, это shell32.dll, думаю смысла нет обсуждать...