特定のフォルダーでCygwinを開く


226

Cygwinを特定のフォルダーで開くCygwinショートカットを作成するにはどうすればよいですか?これは入力する必要がなくなります

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

Cygwinを起動するたびに。


2
.batファイルを作成します。これはチュートリアルのcomputerhope.com/batch.htmです
Umar Jamil

注:chereパッケージは、管理者権限でインスタンス化する必要がある場合があります。これに巻き込まれ、を使いたくなった場合sudo、期待した結果が得られない可能性があります。この場合、Windowsマシンに管理ユーザーとしてログインします。
dreftymac 2015年

回答:


410

Cygwinをインストールするとき(またはすでにインストールしている場合は、もう一度ダウンロードしてセットアップを再開し、更新を実行します)、chere「シェル」カテゴリの下のパッケージを選択していることを確認してください。

Cygwinが起動したら、Cygwinターミナルを(管理者として)開き、次のコマンドを入力しますchere -i -t mintty -s bash

これで、Windowsの右クリックコンテキストメニューに「Bash Prompt Here」が表示されます。

minttyはCygwinのデフォルトのターミナルです。この-tオプションを選択しない場合、「Bash Prompt Here」はWindowsコマンドプロンプトと同じターミナルを使用するため、水平方向のサイズ変更ができなくなります。)


39
素晴らしい発見、ありがとう!を使用して開くターミナルを指定できることを発見しました。-tたとえば、使用するminttyを開くchere -i -t mintty
Kevin Condon

29
64ビットのcygwin(1.7.27)でテストしたところ、chereが存在するようです。pro-tip:管理者権限でcygwin端末を起動することを忘れないでください。
BuildTheRobots 2014年

11
注意すべきもう一つのこと。すでにこれを実行chere -i -t mintty -fして上書きを強制した場合。それでも、管理者としてcygwinを実行する必要があります。
グレッグジェニングス

29
W7x64で権限の問題がありました(エラー(5):アクセスが拒否されました。ハイブは書き込み不可)。管理者としてCygwinを起動することで解決しました。
DmitrySandalov 2014

17
私の場合、Cygwinにはデフォルトのシェルがなかったため-s bash、makeに追加すると、chere -i -t mintty -s bashこの機能が動作します
Bryce Guinta

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

そして、これとは逆のトリックで、現在のbashディレクトリでWindowsエクスプローラーを開きます。このエイリアスを作成します。

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

注:cygpath -w .上記の部分はバックティックで囲まれています。

今だけ入力winxbashプロンプトで、そして勝利エクスプローラがポップアップ表示されます。

注:winxからドキュメントフォルダーに移動する場合は、

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

3
非常に素晴らしいトリックですが、winxエイリアスは私のCygwinセットアップでは機能しませんでした。それが機能するためには、両方のバックスラッシュを削除して置き換える必要.があり$PWDました。
not2qubit 2014

ショートカット(インストールのCygwin64パスを使用するようになっている)がcygwinをユーザーフォルダーに開く場合はどうなりますか?:(多分これは32ビットCygwinでのみ動作しますか?
Alex Hall

これも私のために働いていますalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
和漢短歌

1
(勝つ7のx64上)2.6.0をcygwinので、はるかに容易に行うことができます。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ファイルハンドルを開いたままにします$0ALT+F2作業ディレクトリをすでに変更している場合でも、ウィンドウ()のスポーンコピーはさらに悪いことに、別のファイルハンドルがに開かれ$0ます。これは$0、任意のプロセスで削除/変更する必要がある一部の操作に干渉する可能性があります。これにアクセスするときに「Permission Denied」エラーが発生した場合$0は、原因である可能性があります
マット

33

cygwinターミナルから、次のコマンドを実行します。

echo "cd your_path" >> ~/.bashrc

.bashrcスクリプトは、新しいbashセッションを開いたときに実行されます。上記のコードは、新しいcygwinセッションを開いたときにyour_pathディレクトリに変更されます。


3
これが答えです!とても簡単。
Devin Walker

はい !それは簡単だ !投票してください!
Alex Byrth、2015

19
これは答えではありません。質問で要求されているように、上記のディレクトリを使用するショートカットを作成しないため、Cygwinシェルを起動するすべてのメソッドの動作が変更されます。ローカルの問題を解決するために、グローバル設定(またはログインプロファイル)を変更しないでください。
Ben Voigt 2015年

私は一度使用、正確に偶然の1オフのまま、パスワードファイルにユーザーを追加するために、このメソッドを>文字が。次に、ログアウトしました:-)
paxdiablo

@paxdiablo ouch
bschwagg 2018年

30

右クリックのコンテキストメニューに[Open Cygwin Here]オプションを配置する.regファイルを作成しました。これは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」というテキストファイルに入れ、ダブルクリックしてください。
Andrew Moylan 2013

3
ここで+1の最良のソリューション。そして、言及してくれてありがとうapt-cyg、私はこのツールについて知らなかった
user11153

これはまさに私が探していたものであり、Microsoftのサイトでさえ同じ結果が得られなかったため、他のことにも役立ちました。
FilBot3 2014年

「cygwin」に変更する必要がありましたが、「/ bin / xhereの実行に失敗しました:そのようなファイルまたはディレクトリはありません」というエラーが表示されます
Totty.js

@ Totty.jsあなたはCygwinに 'chere'パッケージをインストールしましたか?
Jeutnarg 2016年

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 14

1
ディレクトリ、ドライブ、バックグラウンドのコンテキスト用
Tom Kay

最後に、私にとってはうまくいった1つのソリューションですが、完全に理解するのにいくつかの問題があります;-) ['bash'の後に 'exec bash']。ヒント:3つのエントリを1:「ディレクトリ」、「ドライブ」、「背景」の代わりに「フォルダ」に置き換えることができます。
t0r0X 2014年

「フォルダ」のみの場合、リンクはドライブのコンテキストメニューに表示されますが、実行に失敗します。ただし、「フォルダ」と「ディレクトリ\バックグラウンド」を使用して2つのエントリに切り詰めることができました
Tom Kay

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ファイルに追加する必要がありますか、それとも一度だけ実行する必要がありますか?
iono 2013年

2
@tomeoftom、それをシェル内で実行すると、そのシェルにのみ影響します。開始した他のユーザーには影響しません。したがって、常に使用可能にしたい場合は、起動ファイルの1つに配置する必要があります(これ~/.profileは1つの可能性です)。
paxdiablo 2013年

〜/ .profileに入れても機能しませんでしたが、〜/ .bashrcは機能しました。
zupa

@zupa、起動ファイルのソースに関するルールはかなり複雑です(bash十分に掘り下げると、manページにすべてがあります)。それが.profile一つの可能​​性として述べた理由です。
paxdiablo 2013

.profileは最終的に.bashrcをソースにするため、代わりにそのコマンドをbashrcに追加することができます。(.profileが機能しませんでした)
laertis '09 / 09/29

8

Iconを使用して、chereパッケージなしでcygwinを起動します。

  1. デスクトップにcygwinターミナルのショートカットを作成します。
  2. アイコンをRクリックして、プロパティを選択します。
  3. ショートカットタブで、これをターゲットに使用します。 C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. START INの場合は、cygwinを起動するディレクトリ/フォルダーのパスを入力します。すなわちC:\some\dir\name\here

ok 2つのこと1. -c「ターゲット」に追加しても、「開始」にパスを指定している限り、違いはありません。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

これで、Windowsエクスプローラー(コンテキストメニュー)で右クリックして特定のディレクトリでcygwinを開き、[Bash Prompt Here]を選択できます。

Windowsコマンドプロンプトを使用して、特定のディレクトリからcygwinを開くこともできます。

  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

このコマンドは、FreeCommanderなどのカスタムファイルマネージャーからcygwinを開くためにも使用できます。

FreeCommanderから取得した現在のディレクトリでcygwinを開くには、次の手順を実行します。

  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

FreeCommanderからcygwinを開くためのカスタムショートカットを追加できます。

  1. ツール->キーボードショートカットの定義
  2. 「お気に入りツール01」(または「お気に入りツールN」)までスクロールします
  3. 新しいショートカットキーを割り当てる:私はCtrl+ Shift+ を使用しますT

優れたリファレンス:MinTTY Wiki、記事ヒント:特定のディレクトリから始める


5

自分で選択したディレクトリにCygwinターミナルを起動するWindowsショートカットを作成するには、次のことを試してください。

  • 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ターミナルを開くことができます。

Netbeansから特定のディレクトリでCygwinシェルを開く方法に投稿されたソリューションに触発されましたか?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

次のコード行を使用して、Win7の現在のディレクトリでzshを起動しました。

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

%Lまたは%1の代わりに%Vを使用したことに注意してください(どちらも私にとって機能しなかったため)


3

新規インストールが必要な場合は、Windowsという「ユーザー環境変数」という名前の HOME、「マイドキュメント」が存在する場所のパスを割り当てます。

cygwinインストーラは、 HOME変数をこれを自動的にcygpathに変換し、これをmy〜ディレクトリとして選択します。

これは、過去5年間にプロで使用したすべてのワークステーション(約3または4、Win7)で正常に機能しました。私は常にこれらのマシンで唯一のユーザーであり、その効果については言えません。


3

右クリックしたフォルダでCygwinを開くためのレジストリ編集スクリプトを作成しました。私のGitHubにあります。

これが私のGitHubです

RegEdit64ビットマシン用のGithubのサンプルコード:

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分節約できたでしょう:)
Daniel Sokolowski

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"

xhereの存在の前提条件は、他の回答で述べたように、chereのインストールであると思います。
サミュエル

1

私のWindowsマシンでは、それはかかりませんでした:

chere -i -t mintty

minttyシェルは利用できませんでしたが、ash bash cmd dash mksh pdksh posh tcsh zsh passwdなど、他のさまざまなシェルを選択できる場合があります。

だから私は使用しました:

chere -i -s bash


Minttyはシェルではなく、ターミナルエミュレータです。
Palec

これは元の質問にどのように答えますか?
リー

これは、システムにminttyがなく、上記で提供された解決策を試みるとエラーが発生する人にヘルプを提供します。また、上記で提供された解決策を実行しましたが、Windowsマシンでは機能しませんでしたが、私の回答で問題が解決しました。
user3065757 2017

1

単にcygwinターミナルを開いて次のように書くことができます:cdとドラッグアンドドロップした後、目的のフォルダに入る!


これは質問の内容を完全に解決するものではありませんが、非常に役立つヒントです。ありがとう。
RoG

1

レジストリを使用する答えで、Windows 2008 R2 SP1では、バックグラウンドをパスから削除する必要があることがわかりました。さらに、chereとxhereはcygwin64の一部ではないため、レジストリと送信ソリューションを組み合わせて両方で機能するソリューションを次に示します。「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

これは、Windows 8.1で私のために機能した唯一のCygwin64レジストリソリューションです。

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

私はcygwinコマンドを「盗む」ために使用したgitにも問題がありました-実行する必要がありました
C:\cygwin\bin\mintty.exe -
が 、adminとしてインストールchereして実行chere -i -t mintty -fした後(上記を参照)、単純に使用できます:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
これをTotal Commanderにカスタムボタンとして追加しました(右パネルをクリック>追加...)そしてそれは非常にうまく機能します。


0

move.sh次のコードを持つbashファイルsay を 作成します。C:\cygwin64\bin\run.exe -p /bin bash runFile.sh これにより、Cygwinが起動し、Cygwin runFile.shのbinディレクトリでpresentが実行されます。特定のディレクトリに移動したいとします。たとえばE:\code 、runFile.shに次のコードがあります。cd E: cd code


0

最後に、Cygwin自体に依存しない回答。

これは私がディレクトリの午前ならば、という事実を利用しC:\\Coolて、私は、コマンドを呼び出しC:\\Cygwin\\bin\\mintty.exeminttyすなわち、現在のディレクトリ、上自動的に開きます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:\\CygwinCygwinがインストールされている実際の場所です。

次に、ファイルC:\\Cygwin\\AddMinttyToContextMenu.regを開いて新しいレジストリエントリをインストールすれば完了です。

このファイルC:\\Cygwin\\AddMinttyToContextMenu.regcmd.exe、最初にa C:\\Cygwin\\silent_run.vbsを開き、現在のディレクトリにC:\\Cygwin\\bin\\mintty.exe移動してから、コマンドラインオプションでターミナルを開くように呼び出します。-w max、つまり最大化して開くことで機能します。

スクリプトC:\\Cygwin\\silent_run.vbsC:\\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(cscriptで起動したvbsファイル)に引数を渡すことはできますか?

-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の回答に基づいて、現在のディレクトリでcygwinを開く簡単なBATファイルを作成しました。PATHにcygwinのbinディレクトリがあると仮定します。

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

-1

なぜそんなに多くの時間を浪費しなければならなかったのかは分かりませんが、これはwin 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と、そのフォルダに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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.