在bash的windows快捷方式(cygwin/mintty)中,可以提取参数的文件夹部分吗?

在bash的windows快捷方式(cygwin/mintty)中,可以提取参数的文件夹部分吗?,windows,cygwin,mintty,Windows,Cygwin,Mintty,抱歉,如果问题标题很难理解,很难表达 关于以下问题和答案: 在LindseyD的回答中,它告诉您如何设置windows“sendto”快捷方式来打开文件夹。使用: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bash 这真的很酷,但我经常在一个只包含文件的文件夹中,所以要使用它,我必须上升一个级别,然后右键单击该文件夹并发送到 这是因为它不适

抱歉,如果问题标题很难理解,很难表达

关于以下问题和答案:

在LindseyD的回答中,它告诉您如何设置windows“sendto”快捷方式来打开文件夹。使用:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico  C:\cygwin\bin\bash.exe  -l -c "cd \"$0\" ; exec bash
这真的很酷,但我经常在一个只包含文件的文件夹中,所以要使用它,我必须上升一个级别,然后右键单击该文件夹并发送到

这是因为它不适用于文件,因为传递到快捷方式的参数是文件路径而不是文件夹,例如:c:…\test.txt。因此,我试图通过右键单击文件-->sendto-->bash来了解如何实现这一点

但我的想法是找到一种方法,从0美元中提取路径。但我找不到有效的语法来执行此操作。我一直在关注以下方面:


还有许多其他变量,但这些似乎都不适用于变量$0。例如,我似乎不能使用
~dp&0
,这显然是错误的。因此,要么不能这样做,要么我对语法的理解是错误的:o

您可能正在寻找
chere

它可以为资源管理器创建一个“bash prompt here”菜单。(鼠标左键)

您可以尝试一个命令(值为-c arg),如

向外工作,将目标路径转换为绝对unix样式,获取基本目录,更改目录

您需要对引号进行转义,并在整个字符串周围加引号


这应该类似于
chere
,但会在文件的父级中打开。我现在无法测试,但它也可能在选定目录的父目录中打开。

谢谢,这是一个有效的答案(因此+1),但如果可能的话,我宁愿使用普通的dos/windows/bash工具。这是因为我很难让新软件包获得批准:(chere是一个bash脚本。它为Explorer创建菜单项。这对我不起作用。我在dos中尝试过:
C:\cygwin\bin\mintty.exe-I/cygwin-Terminal.ico C:\cygwin\bin\bash.exe-l-C“cd$(basedir$(cygpath-ua\“C:\dev\test\test.txt\”);exec bash
注意:我使用了一个完整的路径作为测试,这样我可以在DOS中运行它,然后在快捷方式中使用它,我用reply:basedir命令not found打开了minty对不起。我混淆了
dirname
basename
的名称,它们分别将路径的部分返回到左侧和右侧在最右边/在路上。啊,好的。我会在星期一回来的时候试试。谢谢
cd $( basedir $( cygpath -ua "$0" ) )