Выполнить(run) передача параметра в ярлык (lnk) c параметром
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Программное обеспечение

#1: Выполнить(run) передача параметра в ярлык (lnk) c параметром Author: _Johm PostPosted: Tue Feb 02, 2010 21:01
    —
Пристрастился я к 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, но гибкость пропадет.
Можно поменять заголовок, если есть идея как сформулировать

#2:  Author: VenclavLocation: Оркск PostPosted: Tue Feb 02, 2010 21:09
    —
%COMMANDER_PATH% действует только в среде Тотала. Винда (глобально) об этой переменной не знает.
Попробуй задать жестко в системных переменных путь к Тоталу.

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

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

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

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

но у меня не работает.

Скрипты вызываются…

#3:  Author: _Johm PostPosted: Tue Feb 02, 2010 21:32
    —
vbs через lnk в RUN у меня работают с параметром.
А про %COMMANDER_PATH%, думал писать- не писать и
не написал, у меня эта переменная среды, так же задана
через SET, представим что в первом посте, вместо
%COMMANDER_PATH% любая другая переменная %MYDIR%

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

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

#4:  Author: _Johm PostPosted: Tue Feb 02, 2010 21:34
    —
Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript

#5:  Author: _Johm PostPosted: Thu Feb 04, 2010 20:34
    —
[решено]
Исправляю свою ошибку. Хотя от части был прав:

Переменную COMMANDER_PATH, не заданную через SET,
можно использовать в vbscript'ах, интерпритатор ее
разворачивает, но AutoIt3.3.4 этим похвастаться не может,
то есть,
lnk, ссылающийся на vbscript, запущенный с параметром через
"Выполнить", отработает
Code:
объект ярлыка:
[%COMMANDER_PATH%\SCRIPTS\thebat.vbs

где в самом thebat.vbs присутствует COMMANDER_PATH,
но
с AutoIt это не прокатит, запинка происходит в самом
скрипте au3 - не разворачивает переменную
COMMANDER_PATH.

Если, явно задать COMMANDER_PATH через SET, то
такое:
Code:
объект ярлыка bat.lnk
%COMMANDER_PATH%\SCRIPTS\autoit\AutoIt3.exe "thebat.au3"
работает.

Например,
WinKey+R
воодим
Code:
bat somepassword
Запускается bat.lnk на AutoIt3.exe thebat.au3 somepassword

#6:  Author: tarbo PostPosted: Wed Feb 10, 2010 11:53
    —
_Johm wrote:
Не вызываются скрипты через RUN без расширения.
нужно писать somescript.vbs, когда с lnk, exe, cmd, bat
можно ввести просто somescript

посмотрите значение переменной %PATHEXT%

#7:  Author: _Johm PostPosted: Wed Feb 10, 2010 15:08
    —
Она наверно у всех такая:
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

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

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

#8:  Author: _Johm PostPosted: Wed Feb 10, 2010 15:54
    —
tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики
Quote:
посмотрите значение переменной %PATHEXT%
?

#9:  Author: tarbo PostPosted: Sun Feb 14, 2010 19:34
    —
_Johm wrote:
tarbo
Сами то хоть пробовали то, о чем я уже два раза написал из-за реплики

Это вы к чему? Я предположил, что у вас не прописаны расширения в переменной. Значит эти расширения для запуска файлов без расширения только для путей %PATH%. Если вы хотите запускать, то пропишите пути в переменную. Какого ответа вы еще ждали я не знаю, а до этого и самому не сложно додуматься.

#10:  Author: _Johm PostPosted: Mon Feb 15, 2010 08:30
    —
tarbo wrote:
Значит эти расширения для запуска файлов без расширения только для путей %PATH%.

Ничего это не значит.
И ничего не надо прописывать в переменные для проверки:
положите файл test.vbs
Code:
WSCript.Echo "test"

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

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

#11:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Feb 15, 2010 10:20
    —
_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.

#12:  Author: _Johm PostPosted: Mon Feb 15, 2010 10:35
    —
Avada
ЕМНИП, еще lnk, которой вообще нет в PATHEXT. А повторяюсь я для особо одаренных, которые советуют проверить переменные среды.
[тема закрыта]

#13:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Feb 15, 2010 10:52
    —
Avada wrote:
_Johm
Потому что, ЕМНИП, система корректно обрабатывает (в определённом порядке) запуск без расширений только COM, EXE, BAT и CMD.

И это имеет силу еще со времен черных экранов. Smile
Порядок как раз такой.

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

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

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

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



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group