Откройте Cygwin в определенной папке

226

Как я могу создать ярлык Cygwin, который будет открывать Cygwin в определенной папке? Это избавит от необходимости печатать

cd /cygdrive/c/Users/Tom/Desktop/

каждый раз запускаю Cygwin.

Randomblue
источник
2
создайте файл .bat: вот учебник computerhope.com/batch.htm
Умар Джамиль
Примечание. Возможно, пакет chere необходимо создать с правами администратора. Если вы пойманы этим и испытываете желание использовать sudo, вы можете не получить ожидаемый результат. В этом случае войдите как пользователь с правами администратора на машине с Windows.
dreftymac

Ответы:

410

При установке Cygwin (или, если вы уже установили его, загрузите его снова и снова запустите программу установки для запуска обновления), убедитесь, что вы выбрали chereпакет в категории «Оболочки».

После того, как Cygwin запускается, откройте терминал Cygwin ( в качестве администратора) и введите команду: chere -i -t mintty -s bash.

Теперь вы должны иметь «Bash Prompt Here» в контекстном меню Windows правой кнопкой мыши.

( mintty является терминалом Cygwin по умолчанию. Если вы не выберете его с этой -tопцией, ваша «Bash Prompt Here» будет использовать тот же терминал, что и командная строка Windows, что предотвращает горизонтальное изменение размера.)

two7s_clash
источник
39
Отличная находка, спасибо! Я обнаружил, что вы можете указать терминал, который хотите открыть -t, например, чтобы открыть mintty, который вы используетеchere -i -t mintty
Kevin Condon
29
Только что протестирован с 64-битным Cygwin (1.7.27) и Chere, кажется, теперь существует. pro-tip: не забудьте запустить терминал cygwin с правами администратора.
BuildTheRobots
11
Еще одна вещь, чтобы отметить. Если вы уже сделали это с chere -i -t mintty -fпомощью перезаписи. Вам все равно нужно будет запустить Cygwin в качестве администратора.
Грег Дженнингс
29
Проблемы с разрешением на W7x64 (ошибка (5): доступ запрещен. Улей не доступен для записи). Решено путем запуска Cygwin в качестве администратора.
ДмитрийСандалов
17
У Cygwin не было оболочки по умолчанию в моем случае, поэтому добавление -s bashmake chere -i -t mintty -s bashсделало эту работу для меня
Брайс Гуинта
97

Вот что я использую. Не требует обработки chereпакета или реестра. Работает на Windows 7.

Перейдите в папку «Отправить»:

C:\Users\<your_user_name>\AppData\Roaming\Microsoft\Windows\SendTo

Создайте ярлык с именем, Bash Hereимеющим это в Targetполе:

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

В проводнике Windows щелкните правой кнопкой мыши папку и выберите Send To > Bash Here.

А вот обратный трюк, открывая Windows Explorer в вашем текущем каталоге bash. Создайте этот псевдоним:

alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'

Примечание: cygpath -w .часть выше заключена в галочки.

Теперь просто введите winxв приглашении bash, и там появится Win Explorer.

Примечание. Если winx направит вас в папку с документами, попробуйте

alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'
LindseyD
источник
3
Очень хороший трюк, но winxпсевдоним не работал на моей установке Cygwin. Мне пришлось удалить обе обратной косой черты и заменить .с $PWDдля его работы.
not2qubit
Что если ярлык (адаптированный для использования пути Cygwin64 в моей установке) открывает cygwin для моей пользовательской папки? :( Может быть, это работает только с 32-разрядным Cygwin?
Алекс Холл
Этот также работает для меняalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Вакан Танка
1
В cygwin 2.6.0 (на Win 7 x64) это можно сделать гораздо проще: cygstart .открыть Проводник с текущей папкой или любым синтаксисом папки cygstart ..и cygstart /your/pathт. Д.
244 или
2
Предупреждение: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashдескриптор файла остается открытым для $0каталога, даже после изменения рабочего каталога на что-то другое. Что еще хуже, порождающая копия window ( ALT+F2), даже если вы уже изменили рабочий каталог, открывает еще один дескриптор файла $0. Это может помешать некоторым операциям, которые могут потребоваться удалить / изменить $0в любом процессе. Если вы получаете сообщение об ошибке «Отказано в доступе», $0это может быть причиной
matt
33

Из терминала cygwin выполните эту команду:

echo "cd your_path" >> ~/.bashrc

Скрипт .bashrc запускается при открытии нового сеанса bash. Приведенный выше код с изменением каталога your_path при открытии нового сеанса cygwin.

bschwagg
источник
3
ЭТО ОТВЕТ! ТАК ЛЕГКО.
Девин Уокер
Да ! Это просто ! Проголосуй!
Алекс Берт
19
Это не ответ, потому что он не создает ярлык, который использует указанный каталог, как того требует вопрос, он меняет поведение всех методов запуска оболочки Cygwin. Вы не должны изменять глобальные настройки (или профиль входа в систему), чтобы решить локальную проблему.
Бен Фойгт
Однажды я использовал именно этот метод, чтобы добавить пользователя в файл паролей, случайно пропустив один из >символов. Затем я вышел из системы :-)
paxdiablo
@paxdiablo ой
bschwagg
30

Я сделал .reg файл, который помещает опцию «Открыть Cygwin Here» в контекстное меню, вызываемое правой кнопкой мыши. Это зависит от пакета Cygwin «chere», который вы можете установить с помощью apt-cyg, если вы не установили его в начальной установке.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
Джон Питер Томпсон Гарсес
источник
7
Для тех, кто интересуется, как это использовать, просто скопируйте текст на сером фоне и поместите его в текстовый файл с именем «foo.reg» и дважды щелкните по нему.
Андрей Мойлан
3
+1 лучшее решение здесь. И спасибо за упоминание apt-cyg, я не знал об этом инструменте
user11153
Это было именно то, что я искал, и это даже помогло мне с другими вещами, потому что даже сайт Microsoft не дал мне тот же результат.
FilBot3
Мне пришлось изменить на «cygwin», но я получаю эту ошибку: «Не удалось запустить / bin / xhere: нет такого файла или каталога»
Totty.js
@ Totty.js Вы уверены, что установили пакет 'chere' в Cygwin?
Jeutnarg
17

Для cygwin64 или установок без chere вы можете использовать следующую команду в записи реестра (при условии, что окна соответствуют вашему пути, также при условии, что каталог установки cygwin - c: \ cygwin64)

C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'

Работает в Windows 7 и 8 Файл реестра доступен для скачивания здесь: http://tomkay.me/blog/Cygwin64---Open-Here-18

Windows Registry Editor Version 5.00
; Open cygwin to folder
; http://tomkay.me - Tom Kay

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"
Том Кей
источник
Можете ли вы объяснить, почему у вас есть 3 (х2) записи реестра?
not2qubit
1
они предназначены для каталогов, дисков и второстепенных контекстов
Том Кей
Наконец, одно решение, которое сработало для меня, хотя у меня есть некоторые проблемы с его полным пониманием ;-) ['bash' после 'exec bash']. Подсказка: вы можете заменить 3 записи на 1: «Папка» вместо «Каталог», «Диск» и «Фон».
t0r0X
просто «Папка», ссылка появляется в контекстном меню диска, но не выполняется. Однако мне удалось сократить до 2 записей с помощью «Папка» и «Каталог \ Справочная информация»
Том Кей,
1
Для emacs: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Ян Матусек
12

Если вы хотите, чтобы этот каталог использовался по умолчанию, просто добавьте cdоператор в ваш ~/.profileфайл.

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

alias tom="cd /users/tom"

или ваш эквивалент. Это позволяет мне очень быстро менять каталоги.

paxdiablo
источник
Этот псевдоним тоже нужно добавить в ~/.profileфайл или просто запустить один раз?
Ионо
2
@tomeoftom, если вы просто запустите это в оболочке, это повлияет только на эту оболочку. Это не повлияет на другие, которые вы начинаете. Итак, если вы хотите, чтобы он был всегда доступен, вам нужно поместить его в один из ваших файлов запуска (из которых ~/.profileодна возможность).
paxdiablo
у меня не получилось, когда я положил в ~ / .profile, но ~ / .bashrc сработал.
Зупа
@zupa, правила выбора файлов запуска довольно сложны (хотя все это есть на bashстранице руководства, если вы копаете достаточно глубоко). Вот почему я заявил .profileкак одну возможность.
paxdiablo
В конечном итоге .profile содержит исходники .bashrc, поэтому вы можете добавить эту команду в bashrc. (.profile не работает для меня)
Laertis
8

Я использую и Icon для запуска моего Cygwin без chereпакета.

  1. Создайте ярлык на моем рабочем столе для терминала cygwin.
  2. R-щелкните значок и выберите свойства.
  3. На вкладке быстрого доступа используйте это для ЦЕЛИ: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Для START IN укажите путь к папке dir /, в которой вы хотите запустить cygwin. т.е.C:\some\dir\name\here
Doug
источник
хорошо 2 вещи 1. добавление -cв «Target» не имеет значения, пока вы указываете путь в «Start In» 2. это решение создает проблему PATH. cygwin не может добавить /usr/local/bin:/usr/binв системную переменную PATH, что не позволяет вызвать некоторые из его двоичных файлов. Конфигурация, вероятно, находится в /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; затем `
Laertis
8

Как сказал two7s_clash, сначала нужно установить chereпакет и настроить mintty:

  1. Откройте терминал Cygwin от имени администратора
  2. apt-cyg install chere
  3. chere -i -t mintty

Теперь вы можете открыть cygwin в определенном каталоге, щелкнув правой кнопкой мыши в проводнике Windows (контекстное меню) и выбрав «Bash Prompt Here».

Вы также можете открыть cygwin из определенного каталога с помощью командной строки Windows:

  1. Открыть окно командной строки
  2. Перейдите ( cd) в пользовательский каталог
  3. казнить C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Эта команда откроет cygwin с текущим каталогом, взятым из командной строки.

FreeCommander

Эту команду также можно использовать для открытия cygwin из пользовательского файлового менеджера, например FreeCommander.

Чтобы открыть cygwin с текущим каталогом, взятым из FreeCommander, сделайте следующее:

  1. Инструменты -> Избранные инструменты -> Редактировать любимые инструменты ... (Ctrl + Shift + Y)
  2. Добавить новую панель инструментов (+ значок), ярлык: Вставить

    • Имя: cygwin
    • Программа или папка: C:\cygwin64\bin\mintty.exe
    • Начальная папка: %ActivDir%
    • Параметр: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

Вы можете добавить собственный ярлык для открытия Cygwin из FreeCommander:

  1. Сервис -> Определить сочетания клавиш
  2. Прокрутите вниз до «Любимый инструмент 01» (или «Любимый инструмент N»)
  3. Назначьте новую комбинацию клавиш: я использую Ctrl+ Shift+T

Отличная ссылка: MinTTY Wiki, статья Советы: Начиная с определенного каталога

nexayq
источник
5

Чтобы создать ярлык Windows, который запускает терминал Cygwin в каталоге по вашему выбору, попробуйте следующее:

  • Щелкните правой кнопкой мыши на рабочем столе Windows, выберите «Создать», а затем выберите «Ярлык».

  • Для определения местоположения элемента введите следующий текст, изменив minttyпуть по мере необходимости и подставив имя нужного каталога, где указано.

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
    

    Например, OP будет использовать следующий текст:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Нажмите кнопку "Далее'.

  • Введите желаемое имя для ярлыка и нажмите «Готово».

На рабочем столе можно разместить несколько ярлыков для открытия терминалов Cygwin в различных часто используемых каталогах.

Вдохновлено решением, опубликованным на Как открыть оболочку Cygwin в определенном каталоге из Netbeans? на superuser.com .

Патрик Келли
источник
4

Найдите файл Cygwin.bat и создайте содержимое следующим образом:

@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"

Добавьте путь к cygwin.bat в среду PATH.

Теперь в любой папке вы можете ввести в адресную строку:

cygwin

Также вы можете ввести его, когда вы в cmd.exe

джеограф
источник
3

Я использовал следующие строки кода для запуска zsh в текущем каталоге в Win7.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="\"C:\\Programmieren\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico /bin/zsh --login -c 'cd \"%V\";zsh'"

обратите внимание, что я использовал% V вместо% L или% 1 (так как оба не работали для меня)

Х. Хесс
источник
3

Когда требуется новая установка, я создаю «переменную среды пользователя» Windows с именем HOMEи присваиваю ей путь к тому месту, где находятся «Мои документы».

Установщик cygwin обнаруживает HOMEпеременную, автоматически переводит ее в cygpath и выбирает ее как мою директорию ~.

Это отлично работало на каждой рабочей станции, которую я профессионально использовал последние 5 лет (около 3 или 4, Win7). Я всегда был единственным пользователем на этих машинах, не могу сказать, каков эффект.

Adam.at.Epsilon
источник
3

Я сделал скрипт редактирования реестра, чтобы открыть Cygwin в любой папке, которую вы щелкнули правой кнопкой мыши. Это на моем GitHub.

Вот мой GitHub

Пример RegEditкода из Github для 64-битных машин:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
umer936
источник
Если вы получаете «Ошибка доступа к реестру». ошибка, см. ответ @mpersico ниже ... спасла бы меня 15 минут :)
Даниэль Соколовский
2

Откройте терминал Cygwin в качестве администратора

В PowerShell (с использованием шоколада):

choco install cyg-get

В Cygwin установим контекстное меню

cyg-get install chere
chere -i

Теперь вы можете щелкнуть правой кнопкой мыши и использовать «Bash Prompt Here» в любой папке.

Джонатан
источник
1

Вы можете добавить значок в оболочку, добавив Iconполе, заданное в пути к вашему Cygwin.icoфайлу.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Cygwin"
"Icon"="\"C:\\cygwin64\\Cygwin.ico\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
STEELIX
источник
Я думаю, что предпосылкой существования xhere является установка chere, как упоминалось в других ответах.
Самуил
1

На моей машине Windows это не было:

chere -i -t mintty

Поскольку mintty shell не был доступен, но у вас может быть выбор других оболочек, таких как ash bash cmd dash mksh pdksh posh tcsh zsh passwd.

поэтому я использовал:

chere -i -s bash

user3065757
источник
Mintty - это не оболочка, это эмулятор терминала.
Palec
Как это отвечает на оригинальный вопрос?
Ли
Это предоставит помощь тем, у кого нет мяты в их системе, и они получают ошибку при попытке попробовать решение, представленное выше, я также следовал решению, представленному выше, но оно не работало на моей машине с Windows, но мой ответ решил проблему.
user3065757
1

Вы можете просто открыть терминал cygwin и написать: cd и после перетаскивания n отпустить нужную папку и войти!

Панайотис
источник
Хотя это не полностью решает заданный вопрос, это очень полезный совет. Спасибо.
RoG
1

В ответе, использующем реестр, я обнаружил, что в Windows 2008 R2 SP1 необходимо удалить фон из пути. Кроме того, поскольку chere и xhere не являются частью cygwin64, вот решение, которое работает как для объединения реестра, так и для решений Send To. Замените «E: \ cygwin64» на место установки:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="E:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico --exec /bin/bash.exe --login -c \"cd '%1' ; exec bash -rcfile ~/.bashrc\""
mpersico
источник
0

Это единственное решение реестра Cygwin64, которое работало для меня в Windows 8.1:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\mintty]
@="Mintty from Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\mintty\command]
@="C:\\cygwin64\\bin\\mintty.exe -h always -e /usr/bin/ash -c 'cd  \"$(/usr/bin/cygpath \"%L\")\";  exec /usr/bin/bash  '"

Убедитесь, что вы изменили путь 'C: \ cygwin64' по мере необходимости.

Smyrnian
источник
0

Я создал командный файл и поместил его в каталог Cygwin's / bin. Этот скрипт был разработан таким образом, чтобы он мог устанавливать / удалять записи реестра для открытия выбранных папок и дисков в Cygwin. Для получения дополнительной информации см. Ссылку http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

обновление: это решение делает то же, что и ранние предложения, но все манипуляции с реестром Windows скрыты в скрипте.

Выполните команду для установки

cyghere.bat /install

Выполните команду для удаления

cyghere.bat /uninstall
jsxt
источник
0

У меня также была проблема с git, который использовался для «кражи» моих команд cygwin - поэтому мне нужно было запустить,
C:\cygwin\bin\mintty.exe -
но после установки chereи выполнения chere -i -t mintty -f от имени администратора (см. Выше), вы можете просто использовать:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
я добавил это в Total Commander как пользовательскую кнопку (справа) нажмите на панель> добавить ...) и это работает очень хорошо.

Якуб Михалко
источник
0

Создайте файл bash, скажем, move.shкоторый имеет следующий код. C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Это запускает Cygwin и выполняет runFile.shподарок в каталоге bin Cygwin. Предположим, вы хотите перейти к определенному каталогу, скажем, E:\code тогда runFile.sh имеет следующий кодcd E: cd code

LeelaPrasad4648
источник
0

Наконец, ответ, который не зависит от самого Cygwin.

При этом используется тот факт, что, если я нахожусь в каталоге C:\\Coolи вызываю команду C:\\Cygwin\\bin\\mintty.exe, minttyавтоматически открывается текущий каталог, т C:\\Cool. Е.

Сначала вам нужно будет создать файл C:\\Cygwin\\silent_run.vbsсо следующим содержимым:

Function EnquoteString(argument)
  EnquoteString = Chr(34) & argument & Chr(34)
End Function

arglist = ""
With WScript.Arguments
    For Each arg In .Unnamed
        ' Wscript.Echo "Unnamed: " & arg
        If InStr(arg, " ") > 0 Then
            ' arg contains a space
            arglist = arglist & " " & EnquoteString(arg)
        Else
            arglist = arglist & " " & arg
        End If
    Next
End With

CreateObject("Wscript.Shell").Run Trim( arglist ), 0, False

Далее, чтобы установить этот ответ, вы будете использовать файл реестра Windows. Для этого просто поместите содержимое следующего файла в файл с именемC:\\Cygwin\\AddMinttyToContextMenu.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here\Command]
@="\"C:\\Cygwin\\bin\\mintty.exe\" -w max"


[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020

[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here\Command]
@="cmd.exe /c cd /d \"%V\" && wscript \"C:\\Cygwin\\silent_run.vbs\" \"C:\\Cygwin\\bin\\mintty.exe\" -w max"

Теперь исправьте все жестко закодированные пути, т. Е. C:\\CygwinВ фактическое место, где установлена ​​ваша установка Cygwin.

Затем просто откройте файл, C:\\Cygwin\\AddMinttyToContextMenu.regчтобы установить новые записи реестра, и все готово.

Файл C:\\Cygwin\\AddMinttyToContextMenu.reg работает, сначала открывая a cmd.exe, переходя в каталог, в котором вы находитесь, затем вызывая, C:\\Cygwin\\silent_run.vbsчтобы открыть C:\\Cygwin\\bin\\mintty.exeтерминал с параметрами командной строки -w max, т. Е. Развернуть его в развернутом виде.

Сценарий C:\\Cygwin\\silent_run.vbs необходим для открытия C:\\Cygwin\\bin\\mintty.exeтерминала без сохранения первого cmd.exeоткрытого нами.

Первая запись C:\\Cygwin\\AddMinttyToContextMenu.reg не используется, C:\\Cygwin\\silent_run.vbsпотому что по умолчанию HKEY_CLASSES_ROOT\Directory\Background\shellключи уже открыты в текущем каталоге, тогда мы можем просто позвонить C:\\Cygwin\\bin\\mintty.exeнапрямую, чтобы получить его из коробки.

Ссылки:

  1. Как добавить пункт контекстного меню в Windows Explorer для папок
  2. VBScript передать аргумент командной строки в пути с пробелами
  3. Как передать команду с пробелами и кавычками в качестве единственного параметра в CScript?
  4. вызов vbscript из другого файла vbscript с передачей аргументов
  5. https://ss64.com/vb/syntax-args.html
  6. Проверьте, содержит ли строка пробел
  7. Запуск командной строки без вывода сообщений с VbScript и получение вывода?
  8. http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
  9. /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
  10. Как запустить пакетный скрипт, полученный в качестве аргумента на VBscript?
  11. Могу ли я передать аргумент в VBScript (файл vbs, запущенный с cscript)?
пользователь
источник
-1
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

Скопируйте вышеупомянутые команды в текстовый файл и сохраните его как .bat в любой «интересующей вас папке». Он должен открыть Cygwin в «вашей папке интересов».

Калян
источник
-1

на основе ответа @LindseyD я создал простой BAT-файл, который открывает cygwin в текущем каталоге, это может быть полезно (для меня это так). Предполагая, что у вас есть каталог bin cygwin в PATH.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'
Роман Хокк
источник
-1

Я не знаю, почему я должен был тратить столько времени, но это работает для меня на win 10, 64 bit:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
Totty.js
источник
-1

Наверное, самый простой:

1) Создать файл foo.reg

2) Вставить контент:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty]
@="open mintty"

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty\command]
@="cmd /C mintty"

3) Выполнить foo.reg

Теперь просто щелкните правой кнопкой мыши в любой папке, щелкните, open minttyи в этой папке появится mintty.

lama12345
источник
-2

Лучше всего сделать, как показано ниже:

HKEY_CLASSES_ROOT\Directory\shell\BashHere
Enter Data: Bash Here

HKEY_CLASSES_ROOT\Directory\shell\BashHere\command
Enter Data: 

cmd.exe /c C:\cygwin\bin\bash.exe --login -c "cd '%1'; exec /bin/bash"
Шаши Ранджан
источник