Відкрийте Cygwin у певній папці


226

Як я можу створити ярлик Cygwin, який відкриє Cygwin у певній папці? Це уникне необхідності набору тексту

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

щоразу, коли я запускаю Cygwin.


2
створити .bat файл: ось підручник computerhope.com/batch.htm
Умар Джаміль

Примітка. У пакеті chere може знадобитися примірник прав адміністратора. Якщо вас це зловить і спокушаєте їх використовувати sudo, можливо, ви не отримаєте очікуваного результату. У цьому випадку увійдіть як користувач адміністратора на машині Windows.
dreftymac

Відповіді:


410

Коли ви встановите Cygwin (або якщо ви вже встановили його, завантажте його ще раз і запустіть налаштування знову, щоб запустити оновлення), переконайтесь, що ви обрали chereпакет під категорією «Оболонки».

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

Тепер у контекстному меню Windows клацніть правою кнопкою миші "Bash Prompt Here".

( монетний двір - це термінал за замовчуванням Cygwin. Якщо ви не виберете його за допомогою -tпараметра, ваш "Bash prompt Here" буде використовувати той же термінал, що і командний рядок Windows, що запобігає зміні горизонтальних розмірів.)


39
Дивовижна знахідка, дякую! Я виявив, що ви можете вказати термінал, який ви хочете відкрити, використовуючи -t, наприклад, для відкриття використовуваної м'ятиchere -i -t mintty
Кевін Кондон

29
Щойно перевірена 64-бітною цигуніном (1.7.27) і, схоже, зараз існує порада: не забудьте запустити термінал cygwin з правами адміністратора.
BuildTheRobots

11
Ще одне, що слід зазначити. Якщо ви вже зробили це, chere -i -t mintty -fщоб змусити перезаписати. Вам все одно доведеться запускати cygwin як адміністратор.
Грег Дженнінгс

29
Були проблеми з дозволом на W7x64 (помилка (5): доступ заборонено. Вулик не піддається запису). Вирішено шляхом запуску Cygwin як адміністратора.
Дмитро Сандалов

17
У Cygwin в моєму випадку не було оболонок за замовчуванням, тому додавання, -s bashщоб зробити 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 Explorer ви клацніть правою кнопкою миші папку та виберіть Send To > Bash Here.

І ось зворотний трюк: відкриття Провідника Windows у вашому поточному рейтингу 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`'

3
Дуже приємний трюк, але winxпсевдонім не працював у моєму налаштуванні Cygwin. Мені довелося видалити обидві зворотної косої межі і замінити .з $PWDдля його роботи.
not2qubit

Що робити, якщо ярлик (пристосований для використання шляху Cygwin64 моєї установки) відкриє cygwin до моєї папки користувача? :( Можливо, це працює лише з 32-бітним Цигвіном?
Алекс Холл

Цей теж працює для менеalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Вакан Танка

1
У Cygwin 2.6.0 (на Win 7 x64) це можна зробити набагато простіше: cygstart .відкрити Провідник з поточної папкою, або будь-яким синтаксисом папки cygstart .., і cygstart /your/pathт.д. ...
244an

2
Попередження: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashручка файлу залишається відкритою для $0каталогу, навіть після того, як ви зміните робочий каталог на інший Що гірше, нерестова копія вікна ( ALT+F2), навіть коли ви вже змінили робочий каталог, відкриває ще одну ручку файлу $0. Це може заважати деяким операціям, які можуть захотіти видалити / змінити $0в будь-якому процесі. Якщо ви отримуєте помилку "Відхилено дозвіл" при доступі до $0цього, це може бути причиною
мат

33

З терміналу cygwin запустіть цю команду:

echo "cd your_path" >> ~/.bashrc

Сценарій .bashrc запускається при відкритті нового сеансу bash. Код вище із зміною до каталогу your_path, коли ви відкриваєте новий сеанс cygwin.


3
ЦЕ ВІДПОВІДЬ! ТАК ЛЕГКО.
Девін Уокер

Так ! Це легко! Голосуйте!
Alex Byrth

19
Це не відповідь, оскільки він не створює ярлик, який використовує вказаний каталог, як цього вимагає питання, він змінює поведінку всіх методів запуску оболонки Cygwin. Не слід змінювати глобальний параметр (або профіль входу), щоб вирішити локальну проблему.
Бен Войгт

Я колись використовував саме цей метод, щоб додати користувача до файлу пароля, випадково залишивши одного з >символів. Тоді я вийшов :-)
paxdiablo

@paxdiablo ouch
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 (x2) записи реєстру?
not2qubit

1
вони для контексту "Каталог", "Диск" та "Фон"
Том Кей,

Нарешті, одне рішення, яке працювало для мене, хоча у мене є проблеми, які його повністю розуміють ;-) ["баш" після "exec bash"]. Підказка: ви можете замінити 3 записи на 1: «Папка» замість «Каталог», «Диск» та «Фон».
t0r0X

із просто "Папкою" посилання з'являється у контекстному меню диска, але не може виконати. Однак мені вдалося скоротити до 2 записів за допомогою «Папки» та «Каталог \ Фон»
Том Кей,

1
Для emacs: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Jan Matousek

12

Якщо ви хочете мати цей каталог за замовчуванням, просто додайте cdзаяву у свій ~/.profileфайл.

Те, що я схильний робити, - це використовувати цей метод для встановлення мого звичайного каталогу, а також визначати псевдоніми для моїх загальних випадків:

alias tom="cd /users/tom"

або ваш еквівалент Це дозволяє мені дуже швидко змінювати каталоги.


Чи також цей псевдонім потрібно додати до ~/.profileфайлу чи просто запустити один раз?
Іоно

2
@tomeoftom, якщо ви просто запустите це в оболонці, це вплине лише на цю оболонку. Це не вплине на інших запущених. Отже, якщо ви хочете, щоб він завжди був доступний, вам потрібно помістити його в один із ваших запуску файлів (з яких ~/.profileє одна можливість).
paxdiablo

він не працював для мене, коли його вводили в ~ / .profile, але ~ / .bashrc працював.
zupa

@zupa, правила щодо отримання файлів запуску досить складні (хоча це все є на bashсторінці man, якщо ви копаєте досить глибоко). Ось чому я заявив .profileяк одну з можливостей.
paxdiablo

.profile в кінцевому рахунку джерела .bashrc, так що ви можете замість цього додати цю команду до bashrc. (.profile не працював для мене)
laertis

8

Я використовую і Icon, щоб запустити cygwin без chereпакета.

  1. Створіть ярлик на моєму робочому столі для терміналу cygwin.
  2. Клацніть піктограму та виберіть властивості.
  3. На вкладці швидкого доступу використовуйте це для ЦІЛИ: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Для ПОЧАТОК Введіть шлях до папки / dir, куди потрібно запустити cygwin. тобтоC:\some\dir\name\here

добре 2 речі 1. додавання -cв "Ціль" не має значення, якщо ви надаєте шлях у "Почати в" 2. Це рішення створює проблему PATH. cygwin не вдається додати /usr/local/bin:/usr/binPATH до системи, не /etc/profileдаючи змогу викликати деякі свої бінарні файли. Конфігурація, ймовірно, знаходиться у >> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; потім `
laertis

8

Як сказав two7s_clash, спочатку потрібно встановити chereпакет і налаштувати м'яту:

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

Тепер ви можете відкрити cygwin у певному каталозі клацанням правою клавішею миші в Провіднику Windows (контекстне меню) та виберіть "Тут потрібний рядок".

Ви також можете відкрити cygwin з певного каталогу, використовуючи командний рядок Windows:

  1. Відкрийте командний рядок windows
  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, Статті Поради: Починаючи з певного каталогу


5

Щоб створити ярлик Windows, який запускає термінал Cygwin у каталозі на власний вибір, спробуйте:

  • Клацніть правою кнопкою миші на робочому столі Windows, виберіть "Створити" та виберіть "Ярлик".

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

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

    Наприклад, ОП використовує такий текст:

    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). Я завжди був єдиним користувачем цих машин, не можу сказати, який ефект.


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\""

Якщо ви отримаєте "Помилка доступу до реєстру". Помилка див. відповідь @mpersico нижче ... врятувала б мене 15 хвилин :)
Даніель Соколовський

2

Відкрийте термінал Cygwin як адміністратор

У Powerhell (використовуючи шоколад):

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"

Я думаю, що необхідною умовою існування xhere є встановлення chere, про що йдеться в інших відповідях.
Самуїл

1

На моїй машині Windows це не брало:

chere -i -t м'ята

Оскільки м'ятна оболонка була недоступною, але у вас може бути вибір різних інших оболонок, таких як зола башма cmd dash mksh pdksh posh tcsh zsh passwd.

тому я використав:

chere -i -s bash


М’ятти - це не оболонка, це емулятор терміналу.
Палець

Як це відповідає на початкове запитання?
Лі

Це допоможе тим, хто не має м'яти у своїй системі, і отримає помилку під час спроби рішення, поданого вище, я також дотримувався рішення, поданого вище, але це не працювало на моїй машині Windows, але моя відповідь вирішила проблему.
користувач3065757

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\""

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" за необхідності.


0

Я створив пакетний файл і помістив його в каталог Cygwin / bin. Цей сценарій був розроблений таким чином, що дозволяє встановлювати / видаляти записи реєстру для відкриття вибраних папок та накопичувачів у Cygwin. Докладніше див. За посиланням http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

оновлення: це рішення робить те саме, що і ранні пропозиції, але всі маніпуляції з реєстром Windows приховані в сценарії.

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

cyghere.bat /install

Виконайте команду для видалення

cyghere.bat /uninstall

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


0

Нарешті відповідь, яка не залежить від самого Цигвіна.

Для цього використовується той факт, що, якщо я перебуваю в каталозі 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 для папок
  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 у поточному каталозі, він може бути корисним (для мене це є). Якщо припустити, що у вас є каталог скриньки cygwin у PATH.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'

-1

Я не знаю, чому мені довелося витрачати стільки часу, але це працює для мене на виграш 10, 64 біт:

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\""

-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і вона породжує м'яту в цій папці.


-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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.