<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; Cygwin/Bash: Запуск Cygwin в заданном каталоге из Проводника]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9010</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9010&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Cygwin/Bash: Запуск Cygwin в заданном каталоге из Проводника».]]></description>
		<lastBuildDate>Thu, 12 Dec 2013 21:39:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Cygwin/Bash: Запуск Cygwin в заданном каталоге из Проводника]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=78085#p78085</link>
			<description><![CDATA[<p>В иностранной литературе это называется Cygwin Here. По сути - запуск Cygwin в заданном каталоге из Проводника. </p><p>Мне надоело запускать Cygwin и переходить до нужного каталога. Алиасы специально создавать я не хотел. <a href="https://www.google.com/#newwindow=1&amp;q=cygwin+here">Гугл помог</a>. Более того, я собрал все решения Интернета и реализовал новое. На мой взгляд стало чуточку лучше. </p><p>Я набросал небольшой пакетный скрипт, который позволяет мне запускать Cygwin несколькими способами:<br />-- правым кликом из ПРоводника (а также файл-менеджеров таких как Total Commander, Double Commander и прочих)<br />-- из командной строки<br />-- из пользовательского меню FAR</p><p><strong>Исходный код</strong><br /><a href="http://with-love-from-siberia.blogspot.ru/2013/12/cygwin-here.html">По ссылке</a> тот же код, но без купюр - с английскими комментариям. <br /></p><div class="codebox"><pre><code>
@echo off

if /i &quot;%~1&quot; == &quot;/HELP&quot; (
 echo:Cygwin Here
 echo:
 echo:Usage:
 echo:%~n0 [/HELP ^| /INSTALL ^| /UNINSTALL ^| /LIST ^| &quot;folder&quot;]
 goto :EOF
)

if /i &quot;%~1&quot; == &quot;/INSTALL&quot; (
 for %%p in ( &quot;Drive&quot; &quot;Directory&quot; &quot;Directory\Background&quot; ) do (
  reg add &quot;HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here\command&quot; /ve /d &quot;\&quot;%~f0\&quot; \&quot;%%V\&quot;&quot; /f
 )
 goto :EOF
)

if /i &quot;%~1&quot; == &quot;/UNINSTALL&quot; (
 for %%p in ( &quot;Drive&quot; &quot;Directory&quot; &quot;Directory\Background&quot; ) do (
  reg delete &quot;HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here&quot; /f
 )
 goto :EOF
)

if /i &quot;%~1&quot; == &quot;/LIST&quot; (
 for %%p in ( &quot;Drive&quot; &quot;Directory&quot; &quot;Directory\Background&quot; ) do (
  reg query &quot;HKEY_CLASSES_ROOT\%%~p\shell\Cygwin Here&quot; /s
 )
 goto :EOF
)

if not &quot;%~1&quot; == &quot;&quot; pushd &quot;%~1&quot; || goto :EOF

start &quot;Cygwin Here&quot; &quot;%~dp0mintty.exe&quot; -i /Cygwin-Terminal.ico -h start &quot;%~dp0bash.exe&quot; -l -c &quot;cd &#039;%CD%&#039; ; exec bash&quot;

popd

</code></pre></div><p><strong>Описание</strong></p><p>параметры командной строки<br />/HELP - вывод справки<br />/INSTALL - инсталлировать скрипт в Проводик<br />/UNINSTALL - деинсталлировать скрипт из Проводника<br />/LIST - вывести список измененных записей в реестре</p><p>Другие значения подразумеваются как путь до каталога, в котором Cygwin должыен быть запущен. Пустой список параметров значит запуск Cygwin в текущем каталоге. </p><p>На мой взгляд, у этого решения два явных преимущества<br />1. манипуляции с реестром скрыты от конечного пользователя<br />2. один скрипт для нескольких целей (запуск из разных источников, установка и удаление)</p><p><strong>Установка скрипта для Проводника</strong></p><p>1. открыть каталог Cygwin, содержащий бинарные файлы (обычно C:\cygwin\bin)<br />2. создать файл cyghere.bat и вставить скрипт из примера выше<br />3. сохранить его и запустить команду </p><div class="codebox"><pre><code>c:\cygwin\bin\cyghere.bat /install</code></pre></div><p>Если ваша капия Cygwin установлена в другом месте - просто подкорректируйте путь.</p><p><strong>Установка для FAR</strong></p><p>1. запустить FAR<br />2. подредактировать пользовательское меню: <strong>F2</strong>, <strong>Ins</strong>, <strong>ENTER</strong> (кнопка Добавить команду)<br />3. В диалоге ввести следующее (все символы латинские)<br /></p><div class="quotebox"><blockquote><p>горячая клавиша: <strong>C</strong><br />метка: <strong>Cygwin Here</strong><br />команды: <strong>C:\cygwin\bin\cyghere.bat</strong></p></blockquote></div><p>4. закрыть диалог, нажав OK</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 12 Dec 2013 21:39:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=78085#p78085</guid>
		</item>
	</channel>
</rss>
