Команда "cd /d" не работает в FAR manager, version

Здесь можно сообщить о найденных багах в Far.
Post Reply
ddv
Posts: 1
Joined: Sun 29 Oct, 2006 19:28

Команда "cd /d" не работает в FAR manager, version

Post by ddv »

Выдает ошибку "Синтаксическая ошибка в имени файла, имени папки или метке тома."
Нельзя ли реализовать ключ "/d"? чтобы он работал так же, как в командной строке Windows?
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Команда "cd /d" не работает в FAR manager, ver

Post by zg »

ddv wrote:Нельзя ли реализовать ключ "/d"? чтобы он работал так же, как в командной строке Windows?
оно уже реализовано и работает без всяких ключей.
User avatar
Alexander84
Posts: 150
Joined: Fri 01 May, 2009 06:38
Has thanked: 17 times
Been thanked: 2 times

Команда "cd /d" не работает в FAR manager, version

Post by Alexander84 »

Far 3.0.6060.0 x64
Пишу cd /d c:\apps (или pushd c:\apps), жму Enter, осуществляется переход, т.е. вижу содержимое папки apps.
Теперь создаю файл c:\go.cmd и помещаю в него эту команду, запускаю. Переход не происходит.
Однако если закрыть Фар, открыть командую строку через Старт и запустить go.cmd, то переход происходит.
Почему?
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Команда "cd /d" не работает в FAR manager, version

Post by 2useven10 »

Потому что он происходит в том командном процессоре который исполнял файл, а потом был завершён.
Фар остаётся где был.
User avatar
Alexander84
Posts: 150
Joined: Fri 01 May, 2009 06:38
Has thanked: 17 times
Been thanked: 2 times

Команда "cd /d" не работает в FAR manager, version

Post by Alexander84 »

2useven10 wrote: Fri 13 Jan, 2023 01:30 Фар остаётся где был.
В том и дело: Фар переходит по команде cd, запущенной руками, но отказывается переходить из батника.
А ожидание состоит в том, что в обоих случаях переход произойдёт. Как этого добиться?

Поясню на примере из жизни.
Ниже jump.cmd, который принимает поисковый параметр и передаёт его программе поиска.
Программа поиска находит папку, имя которой содержит параметр, и возвращает полный путь до папки.
На последнем шаге нужно перейти по этому пути, т.е. открыть эту папку на активной панели Фара.
В голой командной строке всё работает, при запуске из Фара — не работает.
@echo off set "_keyword=%~1" for /f "delims=" %%x in ('программа_поиска.exe %_keyword%') do cd /d "%%~x"
Пробовал и через меню пользователя (F2), тоже не работает:
@for /f "delims=" %x in ('программа_поиска.exe !?Критерий поиска:?!') do goto:"%~x\"
Last edited by Alexander84 on Fri 13 Jan, 2023 03:02, edited 10 times in total.
Yegor
Posts: 1328
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

Команда "cd /d" не работает в FAR manager, version

Post by Yegor »

Если запускать ваш батник из Far меню (а параметры передавать через !?<title>?<init>!), то можно извратиться.

В меню

Code: Select all

jump.cmd [!Far params!]
goto:<folder.txt

В jump.cmd:

Code: Select all

for /f "delims=" %%x in ('программа_поиска.exe %_keyword%') do echo %%~x > folder.txt
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
HaRT
Moderator
Posts: 10859
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Команда "cd /d" не работает в FAR manager, version

Post by HaRT »

Alexander84 wrote: Fri 13 Jan, 2023 02:33 А ожидание состоит в том, что в обоих случаях переход произойдёт.
Такое ожидание основывается на ложном предположении, будто Фар является командным процессором, но он на эту роль даже и не претендует, а лишь частично выполняет сходные функции в той части, которая уместна для его роли файлового менеджера.
Фар есть инструмент, а не нянька. © 2009 DrKnS
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Команда "cd /d" не работает в FAR manager, version

Post by 2useven10 »

Alexander84 wrote: Fri 13 Jan, 2023 02:33 А ожидание состоит в том, что в обоих случаях переход произойдёт. Как этого добиться?
Работайте над своими ожиданиями.
Выполните в комстроке cmd /C cd /D D:\MyFavoriteFolder и посмотрите на результат.
Может быть это позволит вам понять что происходит.
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Команда "cd /d" не работает в FAR manager, version

Post by 2useven10 »

При запуске из cmd (неожиданно) результат будет таким же.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Команда "cd /d" не работает в FAR manager, version

Post by buniak_a_h »

2useven10 wrote: Fri 13 Jan, 2023 09:42 Работайте над своими ожиданиями
«Ваши ожидания - Ваши проблемы»©А.Аршавин
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

Команда "cd /d" не работает в FAR manager, version

Post by 2useven10 »

User avatar
Alexander84
Posts: 150
Joined: Fri 01 May, 2009 06:38
Has thanked: 17 times
Been thanked: 2 times

Команда "cd /d" не работает в FAR manager, version

Post by Alexander84 »

Yegor wrote: Fri 13 Jan, 2023 03:12 Если запускать ваш батник из Far меню (а параметры передавать через !?<title>?<init>!), то можно извратиться.
Ай молодца, красавчик! Работает!
(Жаль лишь, что каждый раз приходится дёргать диск для перезаписи файла.)

Так удобнее управлять задачами и переходить в проектные папки, ибо остаёшься в Фаре. Скажем, если в todo.txt есть задачи с меткой #2023-0113-1603, то посмотреть относящиеся файлы в папке 2023-0113-1603 это теперь секундное дело — выделил и перешёл.
Last edited by Alexander84 on Fri 13 Jan, 2023 14:52, edited 5 times in total.
Post Reply

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