如何创建在特定文件夹中打开Cygwin的Cygwin快捷方式?这样就不用打字了

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

每次我发射Cygwin。


当前回答

正如two7s_clash所说,你首先需要安装chere包和安装mintty:

以管理员身份打开Cygwin终端 Apt-cyg安装chere 这里有薄荷

现在你可以在Windows资源管理器(上下文菜单)中用鼠标右键在特定目录中打开cygwin,并选择“Bash Prompt Here”。

您也可以使用windows命令提示符从指定目录打开cygwin:

打开windows命令提示符 导航(cd)到自定义目录 执行C:\cygwin64\bin\ minty .exe C:\cygwin64\bin\env.exe chere_invoke =1 C:\cygwin64\bin\bash.exe 该命令将打开cygwin,并从命令提示符获取当前目录。

FreeCommander

此命令还可以用于从自定义文件管理器(如freecommand)打开cygwin。

要打开从freecommand获取的当前目录的cygwin,请执行以下操作:

工具->收藏工具->收藏工具编辑…(Ctrl + Shift + Y) 添加一个新的工具栏(+图标),快捷方式:插入 名称:cygwin 程序或文件夹:C:\cygwin64\bin\mint .exe 开始文件夹:%ActivDir% 参数:C:\cygwin64\bin\env.exe chere_invoke =1 C:\cygwin64\bin\bash.exe -l

你可以添加自定义快捷方式从freecommand打开cygwin:

工具->定义键盘快捷键 向下滚动到“最喜欢的工具01”(或“最喜欢的工具N”) 指定新的快捷键:我使用Ctrl + Shift + T

伟大的参考:MinTTY维基,文章提示:开始在一个特定的目录

其他回答

我也有问题与git,它曾经“窃取”我的cygwin命令-所以我需要运行 C: \ cygwin \ bin \ mintty.exe - 但是在安装chere并以管理员身份执行chere -i -t mintty -f之后(见上文),你可以简单地使用: C:\cygwin\bin\ minty .exe -e /bin/xhere /bin/bash.exe 我在Total Commander中添加了这个自定义按钮(右键单击面板> add…),它工作得非常好。

要创建一个Windows快捷方式,在您自己选择的目录中启动Cygwin终端,请尝试以下操作:

Right-click on the Windows desktop, select 'New', and then select 'Shortcut'. For location of the item, enter the following text, changing the mintty path as needed and substituting the name of the desired directory where indicated. C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash' For example, the OP would use the following text: C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash' Click 'Next'. Enter the desired name for the shortcut and click 'Finish'.

可以在桌面上放置多个快捷方式,在各种经常访问的目录中打开Cygwin终端。

灵感来自解决方案张贴如何打开一个Cygwin shell在一个特定的目录从Netbeans?在superuser.com上。

我已经做了一个注册表编辑脚本打开Cygwin在任何文件夹你右键单击。在我的GitHub上。

这是我的GitHub

来自Github的64位机器RegEdit示例代码:

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

最后一个答案是独立于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的工作原理是首先打开cmd.exe,切换到您所在的目录,然后调用C:\\Cygwin\\silent_run。vbs打开C:\\Cygwin\\bin\\mint .exe终端,用命令行选项-w max,即最大限度地打开它。

脚本C:\\Cygwin\\silent_run。需要vbs来打开C:\\Cygwin\\bin\\mint .exe终端而不保留我们打开的第一个cmd.exe,打开。

C:\\Cygwin\\AddMinttyToContextMenu的第一个条目。reg不使用C:\\Cygwin\\silent_run。因为默认情况下HKEY_CLASSES_ROOT\Directory\Background\shell键已经在当前目录中打开,那么,我们可以直接调用C:\\Cygwin\\bin\\mint .exe来让它开箱工作。

引用:

How add context menu item to Windows Explorer for folders VBScript pass commandline argument in paths with spaces How to pass a command with spaces and quotes as a single parameter to CScript? calling vbscript from another vbscript file passing arguments https://ss64.com/vb/syntax-args.html Check if string contains space Running command line silently with VbScript and getting output? http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp https://superuser.com/questions/62525/run-a-batch-file-in-a-completely-hidden-way How to run Batch script received as argument on VBscript? Can I pass an argument to a VBScript (vbs file launched with cscript)?

这是唯一的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'路径。