Cygwin路径到/ cygdrive / C / Program Files(x86)/ GnuWin32目录?

时间:2013-06-04 17:21:48

标签: cygwin

我无法在Cygwin中执行位于Windows中“C:\ Program Files(x86)”目录中的程序。有人知道让它运行起来的诀窍吗?

jboss@QA024 /cygdrive/C/jboss/EAP-6.0.1/jboss-eap-6.0/bin
$ wgetexe="/cygdrive/C/Program Files (x86)/GnuWin32/wget.exe --help"

jboss@QA024 /cygdrive/C/jboss/EAP-6.0.1/jboss-eap-6.0/bin
$ bash $wgetexe
bash: /cygdrive/C/Program: No such file or directory

jboss@QA024 /cygdrive/C/jboss/EAP-6.0.1/jboss-eap-6.0/bin
$ bash "$wgetexe"
bash: /cygdrive/C/Program Files (x86)/GnuWin32/wget.exe --help: No such file or directory

2 个答案:

答案 0 :(得分:8)

试试这个:

wgetexe="/cygdrive/C/Program Files (x86)/GnuWin32/wget.exe"
"$wgetexe" --help

由于它是一个可执行文件,你不希望将它作为参数传递给bash,它将尝试将其作为脚本执行。由于路径名中有空格,因此需要引用名称,以便shell不会尝试使用无效参数执行cygdrive/C/Program

您还应该能够将目录添加到$PATH

PATH="$PATH:/cygdrive/C/Program Files (x86)/GnuWin32"

请记住,GnuWin32程序是Windows可执行文件,它们使用的任何文件路径都将使用Windows语法进行解释。 Cywin可执行文件(使用cygwin1.dll的任何内容)都使用Cygwin路径语法。

更好的是,安装Cygwin版本的wget并将其作为wget --help调用。

例如,如果您使用的是GnuWin32 wget,则可以使用:

wget -O "C:\cygwin\home\yourname\output-file" "$url"

而使用Cygwin wget可能会使用:

wget -O "/home/yourname/output-file" "$url"

我总是发现尽可能使用Cygwin的Cygwin可执行文件最简单。

答案 1 :(得分:0)

试试这个,它总是有用或者我。

wgetexe="/cygdrive/C/Program\ Files\ \(x86)/GnuWin32/wget.exe"
"$wgetexe" --help