Команда dir при наличии папки dir

Здесь можно сообщить о найденных багах в Far.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда dir при наличии папки dir

Post by buniak_a_h »

В текущей папке, открытой в активной панели, имеется подпапка dir. Если в комстроке набрать команду dir<Enter>, то папка dir откроется в проводнике. Замена Enter на ShiftEnter ситуацию не исправляет.
Аналогично с папкой cd. А вот cls обрабатывается нормально.
Last edited by buniak_a_h on Mon 26 Dec, 2022 12:56, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Команда dir при наличии папки dir

Post by zg »

Addons\SetUp\Executor.CMD.farconfig
Yegor
Posts: 1329
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Команда dir при наличии папки dir

Post by Yegor »

Хоть сам постоянно пользуюсь . ShiftEnter, в чем идея открывать папку в Explorer, если имя команды совпадает с именем папки? Вроде как ввожу команду в командной строке и ожидаю ее исполнения. В случае Александра, даже если ввести dir /? или @dir /? все равно откроется папка.

У меня есть переключалка между CMD/PowerShell/Bash (WSL) через System.Executor.Comspec*. Переключился в Bash и набираю абстрактный config, а получаю C:\Windows\config. Перечислить все команды Bash в System.Executor.ExcludeCmds скорее нереально.

P. S. Надо посмотреть правде в глаза, что пользуясь переключалкой, на такое не нарывался.
Last edited by Yegor on Mon 26 Dec, 2022 22:19, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Команда dir при наличии папки dir

Post by zg »

Yegor wrote: Mon 26 Dec, 2022 22:17 если имя команды совпадает с именем папки?
как far должен узнать, что dir — это команда?
Yegor
Posts: 1329
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Команда dir при наличии папки dir

Post by Yegor »

А почему бы не скормить всю командную строку System.Executor.Comspec-у, если в ней что-то есть (за исключением команд, которые понимает Far, например)?
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда dir при наличии папки dir

Post by buniak_a_h »

zg wrote: Tue 27 Dec, 2022 03:24 как far должен узнать, что dir — это команда?
Yegor wrote: Tue 27 Dec, 2022 04:15 (за исключением команд, которые понимает Far, например)
  1. Обращаю Ваше внимание, что сказанное относится также для паки cd
    Far Manager выполняет следующие команды операционной системы сам, без обращения к командному процессору операционной системы:
    … … … … …
    CD [disk:]path или CHDIR [disk:]path
  2. Если мне надо открыть папку в проводнике, я пользуюсь ShiftEnter (системная реакция). Это, кстати, есть где-то в хелпе.
    Команды управления панелями - сервисные команды
    … … … … …
    Shift+Enter для папки вызывает Проводник с показом содержимого выбранной папки.
    А анализировать список файлов/папок панели - последнее дело. Если нет такой папки, ФАР же выполняет команду, а не ругается, что гнет такой папки!
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда dir при наличии папки dir

Post by buniak_a_h »

zg wrote: Tue 27 Dec, 2022 03:24 как far должен узнать, что dir — это команда?
На самом деле отмазки какие-то голимые. Создайте папку PING, наберите в комстроке ping<Enter> - прекрасно вызовется программа PING.EXE. А почему dir обрабатывается по другой логике - мне не понять.
Возвращаясь к dir. Получается, что в случае наличия такой папки я должен набирать в комстроке cmd /c dir? А если у меня есть папка cmd - она не откроется аналогично dir-у? (не откроется, я проверил. Но как в том анекдоте: понять это нельзя, это надо запомнить).
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Команда dir при наличии папки dir

Post by HaRT »

buniak_a_h wrote: Tue 27 Dec, 2022 05:42 На самом деле отмазки какие-то голимые.
Не голимые отмазки, а нормальные объяснения. Разница между ping/cmd и dir в том, что в первом случае это программы, которые находятся в файловой системе согласно переменной PATHPATHEXT), а во втором, если Фару посредством System.Executor.ExcludeCmds не объяснили, что это команда оболочки (shell) такая, то он находит директорию и запускает её через свои или системные ассоциации.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Команда dir при наличии папки dir

Post by HaRT »

buniak_a_h wrote: Tue 27 Dec, 2022 05:18 Если нет такой папки, ФАР же выполняет команду, а не ругается, что гнет такой папки!
Да, если Фару не удалось понять, чего хочет пользователь, он (Фар) отдаёт команду оболочке (командному процессору) в расчёте на то, что уж там-то разберутся. Если это делать, не анализируя предварительно файловую систему, то Фар не сможет применить свои ассоциации.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Команда dir при наличии папки dir

Post by HaRT »

Yegor wrote: Mon 26 Dec, 2022 22:17 Перечислить все команды Bash в System.Executor.ExcludeCmds скорее нереально.
Отнюдь: запустите в bash'е, например, man do — и он выкатит вам справку, в первом же абзаце которой будут перечислены все его встроенные команды. Остаётся только скопировать, заменить разделители и вставить в диалог редактирования значения настройки.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда dir при наличии папки dir

Post by buniak_a_h »

HaRT wrote: Tue 27 Dec, 2022 06:04 Если это делать, не анализируя предварительно файловую систему, то Фар не сможет применить свои ассоциации.
А ФАР умеет отличать файл от папки? Если да - зачем «отдавать команду оболочке» с менем папки? И к тому же у ФАРа нет возможности назначить ассоциацию на папку. Как-то криво.
Ну и про наличие exe-шника по пути: cls.exe нету, однако выполняется независимо от наличия папки.
Думаю, при анализе файловой системы просто папки надо игнорировать: для открытия в командном процессоре есть Shift+Enter, а для перехода - команда cd.
Last edited by buniak_a_h on Tue 27 Dec, 2022 06:23, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Команда dir при наличии папки dir

Post by HaRT »

buniak_a_h wrote: Tue 27 Dec, 2022 06:22 Ну и про наличие exe-шника по пути: cls.exe нету, однако выполняется независимо от наличия папки.
cls.exe и не выполняется, а про CLS можете самостоятельно найти в Справке Фара.

Поскольку я вижу, что вы не берёте на себя труд внимательно читать то, что вам пишут, от дальнейшего обсуждения воздержусь.
HaRT wrote: Tue 27 Dec, 2022 05:59 он находит директорию и запускает её через свои или системные ассоциации
Last edited by HaRT on Tue 27 Dec, 2022 06:33, edited 1 time in total.
Reason: Добавлен абзац про CLS
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда dir при наличии папки dir

Post by buniak_a_h »

Я абсолютно уверен, что в случае, если не назначена файловая ассоциация, то выполнение команды из ФАРа не должно отличаться от выполнения той же команды из командного процессора. Это, кстати, решает вопрос о «системных ассоциациях». И это прекрасно получалось у Фар 1.75 :-(
Yegor
Posts: 1329
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Команда dir при наличии папки dir

Post by Yegor »

Нужно вызывать тяжелую артиллерию (@DrKnS?)

1) Имеем подкаталог "dir" в текущем каталоге.
2) Выполняем команду dir из командной строки (по Enter).

Build 5701

Выполняется команда dir. Вроде как это и ожидаю (например я и Александр).

Build 5702

Открывается проводник с папкой dir.
drkns 14.11.2020 22:00:22 +0000 - build 5702
  1. Экспериментально: переделан и упрощен запускатель (по мотивам viewtopic.php?t=12275):
    • Поиск запускаемого не производится - ОС видней.
    • System.Executor.UseAppPath и System.Executor.FullTitle больше нет.
    • Обработка ассоциаций отключена по умолчанию. Включается по System.Executor.UseAssociations = true.
Так ли это было задумано?
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Команда dir при наличии папки dir

Post by zg »

Yegor wrote: Tue 27 Dec, 2022 04:15 А почему бы не скормить всю командную строку System.Executor.Comspec-у, если в ней что-то есть (за исключением команд, которые понимает Far, например)?
и видеть заблокированный фар при запуске гуёвых приложений?
buniak_a_h wrote: Tue 27 Dec, 2022 05:42Но как в том анекдоте: понять это нельзя, это надо запомнить.
это же не правда. зачем вы такое пишете? вы же понимаете, что такими заявлениями вы в принципе от себя людей отталкиваете?
Last edited by zg on Tue 27 Dec, 2022 13:04, edited 1 time in total.
Post Reply

Return to “Глюки и баги”