Latest post of the previous page:
Переменная PATHEXT - системная. Пустые расширения в ней (из одной точки) не работают. Нужен свой параметр в настройках для "выполнителя" со списком расширений (или даже масок). По умолчанию значение параметра инициализировать переменной PATHEXT.Ассоциации для файлов при запуске из командной строки
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Вполне возможно, что не помешает и свой, но мне кажется что выше разговор о другом.
Сейчас исполняемы просто ВСЕ маски из списка ассоциаций на Enter, и как-то ограничивать это смысла я сходу не вижу.
А другой вопрос, какие расширения подставлять, если в командной строке файл без расширения.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Хотя вот мне прислали скрин, подтверждающий, что и файлы без расширения могут запускаються..John Doe wrote: ↑Wed 20 Sep, 2017 15:40Обдумал ещё раз.
PATHEXT влияет на то, какие расширения будут подставляться, если имя в командной строке без расширения.
И всё, по идее. Если же имя указано полностью, то файл будет искаться в путях безотносительно того, перечислено ли его расширение в PATHEXT.
Но если файл и есть без расширения, т.е. имя указано полностью, и для него существует ассоциация, то вполне логично было бы в этом случае запускать.
От чего зависит интересно.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Что именно?
Если про файлы без расширения, то тут соображения абстрактного совершенства: заметил неконсистентность и сообщаю.
Если про файлы без расширения, то тут соображения абстрактного совершенства: заметил неконсистентность и сообщаю.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
От ОС может зависеть?
У меня на XP и на 8.1 не работает.
У меня на XP и на 8.1 не работает.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Заметил такое отличие между запуском ассоциации на файле и из командной строки.
Задаю ассоциацию (любую, но для примера пусть остаётся маска
http://bugs.farmanager.com/view.php?id=3500
Задаю ассоциацию (любую, но для примера пусть остаётся маска
xyz
) с командой echo file:"!.!"
:
- На файле - всё работает ожидаемо
Code: Select all
C:\>echo file:"xyz" file:"xyz"
- Из командной строки:Т.е. при запуске в командной строке метасимволы раскрылись почему-то неправильно
Code: Select all
C:\>xyz C:\>echo file:"C:\xyz" file:"C:\xyz"
http://bugs.farmanager.com/view.php?id=3500
Last edited by John Doe on Fri 22 Sep, 2017 09:13, edited 2 times in total.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
И ещё есть отличия в использовании
Если символ задан в самой ассоциации, то всё работает.
Но если в ассоциации символа нет, а он добавляется в командной строке, то экран гасится как ни в чём не бывало.
То же и в "Применить команду".
Update:
http://bugs.farmanager.com/view.php?id=3501
@
для предотвращения гашения панелей.Если символ задан в самой ассоциации, то всё работает.
Но если в ассоциации символа нет, а он добавляется в командной строке, то экран гасится как ни в чём не бывало.
То же и в "Применить команду".
Update:
http://bugs.farmanager.com/view.php?id=3501
Last edited by John Doe on Fri 22 Sep, 2017 16:24, edited 2 times in total.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Нашёл настройку, которая влияет:
System.UseRegisteredTypes
:
Когда она выключена, то файл без расширения не запускается по ассоциации из командной строки.Использовать стандартные типы файлов
Если это опция включена, то при нажатии Enter на файле, тип которого известен Windows и отсутствует в ассоциациях файлов Far, будет запущена программа Windows, предназначенная для обработки этого типа файлов.
-
- Posts: 173
- Joined: Tue 16 Feb, 2010 17:55
- Location: Luxembourg
- Has thanked: 13 times
- Been thanked: 9 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Ребята, ваша дискуссия мне весьма помогла.
У меня была проблемка с моим Cygwin и Bash в кач-ве ComSpec:
Пишу, допустим, "python script.py", запускаю, Фар пытается выполнить команду напрямую, без ComSpec-а, при этом он находит Cygwin-ский symlink: python => python2.7.exe, но не знает, что с ним делать, вылезает сообщение об ошибке. Можно было все проблемные команды добавлять в System.Executor.ExcludeCmds, либо, как делал я, "python=python2.7.exe" в doskey.ini (который загружается при старте Фара). Но это надо было делать в каждом случае, когда возникает очередная такая проблема.
Теперь же я решил это так. Создал файловую ассоциацию:
Теперь "python script.py" превращается в "\python script.py", Far-у этот \ не нравится, и он отправляет команду ComSpec-у (bashcmd), для которого \ в данном случае ничего не меняет, и команда работает.
Так что всем спасибо )
У меня была проблемка с моим Cygwin и Bash в кач-ве ComSpec:
Пишу, допустим, "python script.py", запускаю, Фар пытается выполнить команду напрямую, без ComSpec-а, при этом он находит Cygwin-ский symlink: python => python2.7.exe, но не знает, что с ним делать, вылезает сообщение об ошибке. Можно было все проблемные команды добавлять в System.Executor.ExcludeCmds, либо, как делал я, "python=python2.7.exe" в doskey.ini (который загружается при старте Фара). Но это надо было делать в каждом случае, когда возникает очередная такая проблема.
Теперь же я решил это так. Создал файловую ассоциацию:
File mask: *.
Description: Files without extension
Execute command: \!
Теперь "python script.py" превращается в "\python script.py", Far-у этот \ не нравится, и он отправляет команду ComSpec-у (bashcmd), для которого \ в данном случае ничего не меняет, и команда работает.
Так что всем спасибо )
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
Ассоциации для файлов при запуске из командной строки
gene.pavlovsky,
Я когда-то для подобных целей просто сделал в cygwin копии всех скриптов без расширений с расширением sh (igawk -> igawk.sh и пр.)
Я когда-то для подобных целей просто сделал в cygwin копии всех скриптов без расширений с расширением sh (igawk -> igawk.sh и пр.)
Разум когда-нибудь победит.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Это хорошо, что помогло)gene.pavlovsky wrote: ↑Thu 21 Sep, 2017 09:42Теперь "python script.py" превращается в "\python script.py"
Но хочу подчеркнуть, в данном топике мы боремся за то, чтобы с помощью ассоциаций сделать так, чтобы "script.py" запускался без предшествующего ему "python":
Code: Select all
script.py
Code: Select all
script
-
- Posts: 173
- Joined: Tue 16 Feb, 2010 17:55
- Location: Luxembourg
- Has thanked: 13 times
- Been thanked: 9 times
- Contact:
Ассоциации для файлов при запуске из командной строки
Да, это я понял. И поначалу довольно вяло следил за дискуссией, ибо лично я пока довольствуюсь assoc/ftype для этих целей. Но в итоге и для себя нашёл что-то полезное )
- HaRT
- Moderator
- Posts: 10858
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Ассоциации для файлов при запуске из командной строки
Это отлично делается системными ассоциациями:
Code: Select all
F:\>type HelloWorld.py
print 'Hello, World!'
F:\>set PATHEXT
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PL;.PY;.PHP;.PYW;.RB;.RBW
F:\>assoc .py
.py=Python_script
F:\>ftype Python_script
Python_script=G:\Programs\Python27\python.exe "%1" %*
F:\>HelloWorld
Hello, World!
Фар есть инструмент, а не нянька. © 2009 DrKnS