View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000920 | Wishes | Command Line/Execute | public | 2009-06-07 23:10 | 2018-11-03 13:03 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | duplicate | ||
Summary | 0000920: Усовершенствование метасимвола !& | ||||
Description | При использовании метасимволов-списков возникает потребность в указании путей (в какой-то момент починилось) Хотелось бы иметь возможность использовать для метасимвола !& те же модификаторы, которые доступны в метасимволах !@! и !$! 'Q' - заключать имена с пробелами в кавычки; 'S' - использовать '/' вместо '\' в путях файлов; 'F' - использовать полный путь; | ||||
Additional Information | Отдельно поясню про кавычки. В некоторый случаях они нежелательны. Например когда у нас выделен заведомо один файл, и с помощью !& мы получаем его имя, чтобы соединить с каким-либо путём. Конкретно эта проблемка с кавычками довольно специфическая, и можно на неё забить, но тогда лучше уточнить хелп: Сказано: -------- FAR при обработке метасимволов подставляется только то, что они означают (имя файла, расширение и т.д.). Никаких дополнительных символов (например, кавычки или фамилии разработчиков FAR) не подставляется и вы должны это сделать сами, если потребуется. -------- Добавить: Исключение: при использовании метасимвола !& кавычки подставляются для всех имён содержащих пробелы | ||||
Tags | Metasymbols | ||||
Build | 0 | ||||
|
Если !& относится к Временной Панели то имена получаются с полным путём, иначе - без |
|
> не сработает такая команда: type !#!& Потому что синтаксис неправильный. См. type /? >'Q' - заключать имена с пробелами в кавычки Они и так в кавычках. Если надо без кавычек: for %A in (!&) do @echo %~A > 'S' - использовать '/' вместо '\' в путях файлов ChangeSlashAndDoSomething.cmd !& ChangeSlashAndDoSomething.cmd: @echo off setlocal for %%A in (%*) do call :ChangeSlashAndDoSomething %%~fA exit /b :ChangeSlashAndDoSomething set FQName=%1 set FQName=%FQName:\=//% echo %FQName% exit /b > 'F' - использовать полный путь; for %A in (!&) do @echo %~fA В общем, set /? и for /? рулят. |
|
Если не в кассу, забудьте. Тут есть связанный тикет: http://bugs.farmanager.com/view.php?id=1585 |
|
>В общем, set /? и for /? рулят. В данном контексте это костыли. |
|
> В данном контексте это костыли. Всё зависит от точки зрения. IMHO лучше иметь несколько простых инструментов, чем один сложный. А это стандартные средства ОС, которые всегда под рукой. Если требуемый результат можно получить, причем без всяких оговорок, то зачем плодить сущности? |
|
Да, метасимволов наплодилось изрядно. Служат они для гибкой передачи параметров сторонним приложениям. И если несмотря на гибкость нужны ещё костыли, значит гибкость недостаточна. |
|
Изрядно их наплодилось потому, что они, в основном, достались в наследство от Far 1.65 и, если копнуть глубже, NC. Продолжать их множить сейчас, когда появился относительно нормальный макроязык, IMHO путь неверный. Гибкость никогда достаточной не будет, если под ней понимать отсутствие необходимости в использовании дополнительных инструментов. |
|
Подстановочные символы ничем не заменишь. Я бы не смешивал макроязык и метасимволы. Другое дело, что не стоит множить закорючки: нужны нормальные понятные человеку шаблоны (и/или модификаторы шаблонов). |
|
Что из того, что можно сделать метасимволами, нельзя сделать макроязыком? Ну да, не так просто, не так быстро, не так наглядно, но джентльменский набор метасимволов уже есть, никто, я надеюсь, не собирается его отнимать. А если нужны изыски - применяем cmd.exe или макроязык. Харатерно, что товарищ, открывший упомянутый выше тикет, кажется, даже не рассматривал возможность запуска vim'а не напрямую, а через bat-файл. Наверное, пора уже отсюда в форум... Ибо холивар и офтоп. |
|
>А если нужны изыски - применяем cmd.exe или макроязык. Хорошо это или плохо, но в метасимволах по идее заложены все изыски. Практика выявила отдельные недочёты, которые можно исправить. Надо ли править "локально", или стоит пересмотреть всю (довольно перегруженную) их систему - очевидно этот вопрос выходит далеко за рамки данного тикета, я с вами согласен. |
|
Закрыть, в пользу 0000099 |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-06-07 23:10 | JohnDoe | New Issue | |
2009-06-12 09:37 | JohnDoe | Note Added: 0003605 | |
2011-01-18 15:16 | Raistlin | Note Added: 0006165 | |
2011-01-18 16:31 | NightRoman | Note Added: 0006167 | |
2011-01-18 16:41 | JohnDoe | Note Added: 0006168 | |
2011-01-18 16:50 | Raistlin | Note Added: 0006169 | |
2011-01-18 16:54 | JohnDoe | Note Added: 0006171 | |
2011-01-18 17:48 | Raistlin | Note Added: 0006174 | |
2011-01-18 18:03 | JohnDoe | Note Added: 0006176 | |
2011-01-18 18:16 | Raistlin | Note Added: 0006178 | |
2011-01-18 18:29 | JohnDoe | Note Added: 0006181 | |
2011-03-21 23:45 | alexy | Relationship added | has duplicate 0001585 |
2013-02-03 00:34 | alexy | Severity | minor => feature |
2018-11-01 13:26 | JohnDoe | Tag Attached: Metasymbols | |
2018-11-01 13:27 | JohnDoe | Description Updated | |
2018-11-01 13:39 | JohnDoe | Relationship added | duplicate of 0000099 |
2018-11-01 13:39 | JohnDoe | Note Added: 0016273 | |
2018-11-03 13:03 | DrKnS | Status | new => closed |
2018-11-03 13:03 | DrKnS | Resolution | open => duplicate |
2018-11-03 13:03 | DrKnS | Build | => 0 |