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

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

每次我发射Cygwin。


当前回答

将以下代码保存为文件:cygwin_bash.reg

这将同时添加在当前目录中打开Cygwin和在指定文件夹中打开Cygwin。

使用”。Bashrc“而不是”。bash_profile”配置。由于exec bash. .bashrc是为交互式非登录shell执行的。参见:https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc

Windows Registry Editor Version 5.00

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

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

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

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

其他回答

最后一个答案是独立于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)?

我制作了一个.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"

要创建一个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_bash.reg

这将同时添加在当前目录中打开Cygwin和在指定文件夹中打开Cygwin。

使用”。Bashrc“而不是”。bash_profile”配置。由于exec bash. .bashrc是为交互式非登录shell执行的。参见:https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc

Windows Registry Editor Version 5.00

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

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

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

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

以管理员身份打开Cygwin终端

在powershell中(使用巧克力):

choco install cyg-get

在cygwin 将安装右键菜单

cyg-get install chere
chere -i

现在您可以在任何文件夹中单击右键并使用“Bash Prompt Here”。