3

我在 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
4

2 回答 2

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 可执行文件是最容易的。

于 2013-06-04T17:28:47.950 回答
0

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

wgetexe="/cygdrive/C/Program\ Files\ \(x86)/GnuWin32/wget.exe"
"$wgetexe" --help
于 2016-12-21T12:59:16.510 回答