2017-02-08 7 views
0

Извините, если заголовок вопроса трудно понять, его было сложно сформулировать.В окне быстрого доступа к bash (cygwin/mintty) вы можете извлечь часть паттерна параметра?

Что касается следующего вопроса и ответа:

open-cygwin-at-a-specific-folder

В ответе LindseyD в это говорит вам, как установить окно «SENDTO» ярлык для открытия папки. с помощью:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bash 

Это действительно здорово, но я часто нахожусь в папке, которая содержит только файлы, поэтому использовать это я должен идти на уровень вверх, а затем щелкните правой кнопкой мыши папку и сделать SendTo ...

Это связано с тем, что он не работает с файлами, поскольку параметр, переданный в ярлык, является файловым путем, а не папкой, например: c: ... \ test.txt. Поэтому я пытаюсь выяснить, как сделать эту работу, щелкнув правой кнопкой мыши файл -> sendto -> bash.

Но я пришел в себя, моя идея состояла в том, чтобы найти способ извлечь только путь из того, что находится в $ 0. Но я не могу найти правильный синтаксис для этого. Я смотрел на следующее:

how-to-open-a-cygwin-shell-at-a-specific-directory-from-netbeans

how-to-get-folder-path-from-file-path-with-cmd

batch-extract-path-and-filename-from-a-variable

И многие другие, но ни один из них не кажется, применимы к переменной $ 0. Например, я не могу использовать ~dp&0, это, очевидно, неправильно. Так как это не может быть сделано, как это, или мое понимание синтаксиса не так: о

ответ

1

Вы, вероятно, ищете chere пакет

https://sourceware.org/ml/cygwin-announce/2014-02/msg00024.html

Это может создать «Баш подсказку здесь "для проводника. (Левая кнопка мыши)

+0

Спасибо за это, это правильный ответ (так что +1 для этого), но я бы предпочел придерживаться простых инструментов dos/windows/bash, если это возможно. Это связано с тем, что для меня очень сложно получить новые пакеты программного обеспечения :( –

+0

chere - это скрипт bash. Он создает запись в меню для проводника – matzeri

0

Можно попробовать команду (значение из -c арга) как

cd $(basedir $(cygpath -ua "$0")) 

Работы наружу, конвертировать целевой путь к абсолютному стиле Unix, получить базовый каталог, каталог изменений.

Вам нужно будет избежать кавычек и поместить кавычки вокруг всей строки.

Это должно быть похоже на chere, но открывается в родительском файле. Я не могу протестировать только сейчас, но он может быть открыт и в родительском директории выбранного родителя.

+0

Это не сработало для меня. Я пробовал это в dos: 'C: \ cygwin \ bin \ mintty.exe -i /Cygwin-Terminal.ico C: \ cygwin \ bin \ bash.exe -l -c "cd $ (basedir $ (cygpath -ua \" c: \ dev \ test \ test.текст\"))" ; exec bash 'ПРИМЕЧАНИЕ: я использовал полный путь в качестве теста, поэтому я могу запустить его из DOS, прежде чем использовать его из ярлыка, Я получаю minty открытым с ответом: basedir command не найден –

+0

Извините. Я перепутал имена 'dirname' и' basename', которые возвращают части пути влево и вправо (соответственно) в крайнее правое/в пути. –

+0

А, ок нп. Я попробую это в понедельник, когда я вернусь, спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^