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

时间:2017-02-08 09:58:58

标签: windows cygwin mintty

很抱歉,如果问题标题很难理解,很难说出来。

关于以下问题和答案:

open-cygwin-at-a-specific-folder

在LindseyD的回答中,它告诉你如何设置一个窗口" 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中的任何东西中提取路径。但我找不到有效的语法来做到这一点。我一直在看以下内容:

how-to-open-a-cygwin-shell-at-a-specific-directory-from-netbeans

how-to-get-folder-path-from-file-path-with-cmd

batch-extract-path-and-filename-from-a-variable

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

2 个答案:

答案 0 :(得分:1)

您可能正在寻找chere

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

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

答案 1 :(得分:0)

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

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

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

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

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