2013-06-04 47 views
3

我有執行定位於「C程序麻煩:?從在Cygwin在Windows \ Program Files文件(x86)目錄,任何人都知道的竅門能讓工作Cygwin路徑/ cygdrive/C/Program Files(x86)/ GnuWin32目錄?

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

[email protected] /cygdrive/C/jboss/EAP-6.0.1/jboss-eap-6.0/bin 
$ bash $wgetexe 
bash: /cygdrive/C/Program: No such file or directory 

[email protected] /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 

回答

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可執行文件。

+0

謝謝。你的建議幫助我理清了它。我試圖讓Jenkins在Windows窗口中通過SSH連接到Cygwin並運行wget。我現在開始工作了。 – djangofan

+0

@djangofan:我剛剛更新了我的答案。 –

0

試試這個,它一直工作或我。

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