командная строка

Здесь можно сообщить о найденных багах в Far.
Post Reply
difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

командная строка

Post by difr »

Far Manager, version 3.0 (build 3700) x86
(хотя и на 1.75 то же самое)

Current Directory:
C:\Program Files

выполняем
D:\Programs\Far\Far.exe "C:\"
получаем фар с активной панелью "C:\Program Files"
выполняем
D:\Programs\Far\Far.exe C:\
получаем фар с активной панелью "C:\"
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Re: командная строка

Post by 2useven10 »

Это скорее m$ фокус, чем баг фар, обойти наверное можно, но самодельный парсер комстроки из-за этого делать не хочется.
\" заменяется на ", "C:\\" отработает нормально.
difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

Re: командная строка

Post by difr »

2useven10, благодарю.
про ескэйпинг не докумекал. стыдоба.
difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

Re: командная строка

Post by difr »

сделал параметром '"'..APanel.Path0:gsub('([\\\"])','\\%1')..'"'
локальные пути ("C:\\Program Files\\Tratatam", "D:\\") - ок.
а сетевые ("\\\\SERVER\\PUBLIC", "\\\\SERVER\\") - не ок.
"\\SERVER\PUBLIC" - ок.
\\SERVER\, \\SERVER - не ок.
difr
Posts: 16
Joined: Sat 26 Oct, 2013 23:08
Has thanked: 2 times

Re: командная строка

Post by difr »

пока упростил до '"'..APanel.Path0:gsub('\\$','\\\\')..'"'
но всё-таки с сетевыми путями не всё в порядке (раз анескейпинг, так уж анескейпинг для всех).
ну и с сетевым корнем совсем беда.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: командная строка

Post by zg »

net:\\SERVER, не?
Victorian
Posts: 80
Joined: Sun 11 Oct, 2009 05:55
Has thanked: 1 time

Командная строка

Post by Victorian »

Возникла небольшая проболема, из-за того, что находясь в папке "C:\5." попытался обработать команду вида "del /F /S /Q *.*"
Почему-то удаляться начали файлы с корня "C:\" !!!
Попробовал сделать в панели команду "cd", выдал текущий путь "C:\".
Как в будущем избежать подобных фокусов?

P.S.: Боюсь, через некоторое время сам же и забуду об этой возможности, и наступлю на те же грабли.
Возможно ли хотя бы проверять текущую папку, и в подобных ситуациях выдавать предупреждение о возможном поведении системы?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Командная строка

Post by Skirda »

Victorian wrote:Возникла небольшая проболема, из-за того, что находясь в папке "C:\5." попытался обработать команду вида "del /F /S /Q *.*"
Версия, билд, etc.?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: командная строка

Post by DrKnS »

Версия, билд, etc.?
А что версия? %comspec% не может перейти в "C:\5.", поэтому переходит куда попало и удаляет что попало.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: командная строка

Post by ccaid »

по-хорошему, в подобных случаях выводить бы предупреждение: если запускаем внешнюю программу (любым способом), находясь в папке с именем/путем, вызывающим затруднения у немаргинальных программ, то сказать, что путь имеет особенности и спросить — продолжать ли.
Victorian привел убедительный пример в пользу такого подхода.
Фар делают добрые люди
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: командная строка

Post by DrKnS »

по-хорошему, в подобных случаях выводить бы предупреждение
Давайте критерии "подобных случаев".

Немаргинальные программы могут обломаться на точках и пробелах в конце.
Могут обломаться на com1-255, lpt1-255, prn, con, nul и еще куче других зарезервированных имён.
А конкретно cmd.exe по умолчанию даже с сетевыми путями не работает.

Это же задолбаться можно проверки придумывать.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: командная строка

Post by HaRT »

DrKnS wrote:com1-255, lpt1-255
Источник?
Naming Files, Paths, and Namespaces (Windows) wrote:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
DrKnS wrote:Это же задолбаться можно проверки придумывать.
Пусть бы плагин проверял и предупреждал, а потом говорил Фару “Добро” или “Отказ”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Re: командная строка

Post by ccaid »

источник проблемы пусть и задает критерии. выбрать недорогую по ресурсам функцию win32 api, которая работает с путем (типа FileFirstFind, или как ее там), и посредством ее проверять — нет ли облома с данным путем.
Фар делают добрые люди
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: командная строка

Post by Max Rusov »

Есть плагин PathSync. Он меняет цвет prompt'а на красный, когда текущий путь некашерный.
Post Reply

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