0

抱歉,如果问题标题难以理解,则难以表达。

关于以下问答:

打开 cygwin-at-a-specific-folder

在 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 中的任何内容中提取路径。但我找不到有效的语法来做到这一点。我一直在看以下内容:

如何从 netbeans 打开 cygwin-shell-at-a-specific-directory-from-netbeans

如何从文件路径与 cmd 获取文件夹路径

从变量中批量提取路径和文件名

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

4

2 回答 2

1

您可能正在寻找chere包裹

https://sourceware.org/ml/cygwin-announce/2014-02/msg00024.html

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

于 2017-02-08T11:49:44.633 回答
0

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

cd $( basedir $( cygpath -ua "$0" ) )

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

您将需要转义引号并在整个字符串周围加上引号。

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

于 2017-02-08T18:38:27.207 回答