View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000876 | Wishes | Command Line/Execute | public | 2009-05-25 13:34 | 2014-08-28 08:06 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | new | Resolution | open | ||
Summary | 0000876: Особенности исполнения некоторых команд %COMSPEC%, обрабатываемых фаром самостоятельно. | ||||
Description | Для передачи нескольких команд можно использовать специальные символы (& && || и др.) Однако некоторые из команд обрабатываются фаром самостоятельно, поэтому для них этот механизм не работает. Предлагается при обнаружении в командной строке специальных символов не обрабатывать её самостоятельно, а целиком передавать %COMSPEC% Собственно не предлагается ничего особо нового - ведь именно так фар поступает в случае когда команда употребляется с синтаксисом, отличным от приведенного в разделе помощи "Команды операционной системы" | ||||
Steps To Reproduce | Конкретно в коммандной строке нет такой уж особой необходимости использовать передачу нескольких команд. Но это очень удобно там, где мы ограничены одной строкой, т.е. в ассоциациях файлов и в коммандных алиасах. В большинстве случаев это работает, но только не с командами которые фар (частично) обрабатывает самостоятельно | ||||
Additional Information | 1) Команды "CLS", "REM", "CD" и "CHDIR" FAR обрабатывает самостоятельно. (К этому списку недавно добавились команды "PUSHD" и "POPD") 2) Команды "IF", "CHCP" и "SET" FAR обрабатывает с ограниченной функциональностью - если синтаксис отличается от приведенного в разделе помощи "Команды операционной системы", то команда передается на дальнейшую обработку ком.процессору. 3) О "передаче нескольких команд" : http://technet2.microsoft.com/WindowsServer/ru/Library/44500063-fdaf-4e4f-8dac-476c497a166f1049.mspx?pf=true | ||||
Tags | No tags attached. | ||||
Build | |||||
|
Дополнения: Применить команду (CtrlG) тоже ограничивается одной строкой. +Забыл ещё одну "встроенную" команду - "CLRD" |
|
А как быть с префиксами плагинов? cmd в упор не знает что такое "edit:" Может имеет смысл (эдакая буйная фантазия) в ФАРе (внешний модуль обработчик) "повторить" всю математику cmd? |
|
Смысл конечно есть, и применение нашлось бы. Продолжая буйную фантазию - почему бы не реализовать внутренний "FOR"? Но пока ничего подобного не реализовано - дешевле всего будет отдавать всё на откуп cmd. |
|
воспользуйся батниками, ибо после отключения внутреннего обработчика команд (хотя бы даже некоей опцией) ты первый запоешь, что ФАР поломался. :-) |
|
и, кстати... CHCP полностью поддерживается |
|
>и, кстати... CHCP полностью поддерживается Значит обновите techinfo >после отключения внутреннего обработчика команд (хотя бы даже некоей опцией) Погодите, не надо ничего отключать. Возьмём к примеру команду SET. Что фар делает если видит расширеные параметры, которые не может самостоятельно обработать? Никто ведь не кричит. Что здесь может вообще "поломаться"? Изменения, произведённые командами не будут передаваться обратно в фар (путь, кодовая страница, переменная окружения...) Очевидно, что этого и НЕ ТРЕБУЕТСЯ - они нужны только для той "связки команд", в которой вызваны. Ведь для чего затевался тикет - для того чтобы "связки" использовать в ассоциациях, алиасах, Apply to... К примеру в ассоциации на *.reg-файлы у меня стоит связка @reg import "!\!.!" || pause (в случае ошибки - пауза) Всё прекрасно работает Но допустим мне понадобилось для другой связки перейти во временную директорию cd %TEMP% & .... Что-тут такого хитрого чтобы была необходимость писать батник? В общем никаких подводных камней тут я не вижу. |
|
Может тогда сделать для "полноценной" обработки командным процессором префикс cmd: или comspec: ? Команды с ним будут передаваться напрямую, минуя обработчики Far-а |
|
Px, для FarCmds? или внутри ФАРа? |
|
Это лишнее. Я и так могу написать %COMSPEC% /c "command1 & command2" Суть тикета в том чтобы сделать работу коммандной строки более "прозрачной" для пользователя, чтобы не приходилось соображать что фар одни команды умеет стыковать, а другие - нет. |
|
Внутри Far-а |
|
JohnDoe, как ты думаешь, зачем ФАР сам занимается обработкой некоторых (заметь, не всех) команд? И как ФАР отреагирует, если в твоей команде будет присутствовать pushd (ну или cls), но не будет popd, который ты исполнишь позже? |
|
Я знаю для чего он это делается, и помню времена когда этого не делалось. От фара не ожидается никакой реакции если pushd обработан не фаром, а cmd pushd/popd естественно должны быть в одном контексте. Но я ведь точно также не пытаюсь выполнить pushd в одном экземпляре фара, а popd - в другом. И точно так же используя расширеный синтаксис SET я не ожидаю что переменная вернётся в фар |
|
1.75.2603 - глюк с "echo." при перенаправлении вывода: "echo.>test_far" пишет в файл "Режим вывода команд на экран (ECHO) включен.". Еще не работает "echo,". |
|
Хмм... не cmd, а дерьмо полнейшее :-( echo. == echo, == echo+ == echo\ == echo/ ..... везде пустая строка зато "echo-" "echo-" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Это что? недокументированные фичи? какие вообще символы допустимы? |
|
Ничего удивительного: минус всегда был легальным символом имени, даже во времена 8.3 |
|
> какие вообще символы допустимы? ы? |
|
Помимо вышеперечисленных ещё =:;[]( (где это документировано не знаю, всё методом тыка) |
|
См. также http://bugs.farmanager.com/view.php?id=825 |
|
В свете новых изменений (0001953) этот тикет теперь следует отнести вообще ко всем командам запускаемым не с панели а из командной строки. |
Date Modified | Username | Field | Change |
---|---|---|---|
2009-05-25 13:34 | JohnDoe | New Issue | |
2009-05-25 13:49 | JohnDoe | Note Added: 0003257 | |
2009-05-25 14:34 | vskirdin | Note Added: 0003258 | |
2009-05-25 15:17 | JohnDoe | Note Added: 0003259 | |
2009-05-25 15:36 | vskirdin | Note Added: 0003261 | |
2009-05-25 15:47 | vskirdin | Note Added: 0003262 | |
2009-05-25 16:29 | JohnDoe | Note Added: 0003263 | |
2009-05-25 16:29 | Px | Note Added: 0003264 | |
2009-05-25 16:52 | vskirdin | Note Added: 0003265 | |
2009-05-25 17:12 | JohnDoe | Note Added: 0003266 | |
2009-05-25 17:12 | Px | Note Added: 0003267 | |
2009-05-25 17:20 | vskirdin | Note Added: 0003268 | |
2009-05-25 17:28 | JohnDoe | Note Added: 0003269 | |
2009-05-25 17:31 | JohnDoe | Note Edited: 0003269 | |
2009-08-02 09:37 | Zzzz | Note Added: 0003837 | |
2009-08-03 15:38 | vskirdin | Note Added: 0003841 | |
2009-08-03 17:22 | JohnDoe | Note Added: 0003842 | |
2009-08-04 09:05 | vskirdin | Note Added: 0003846 | |
2009-08-04 10:09 | JohnDoe | Note Added: 0003849 | |
2010-06-04 11:57 | HaRT | Note Added: 0005448 | |
2012-02-02 14:45 | JohnDoe | Note Added: 0008534 | |
2013-02-03 00:31 | alexy | Severity | minor => feature |