cmd 無法執行 /cygdrive/c/ 內的文件

cmd 無法執行 /cygdrive/c/ 內的文件

我正在運行一個 Ruby on Rails 應用程式 - 在應用程式內有一個我載入的 Ruby Gem,它確定了名為 的可執行檔的位置pngcrush。它執行此操作的方式是運行命令which pngcrush,該命令返回/cygdrive/c/Windows/system32/pngcrush.但是,當 gem 嘗試使用系統呼叫發出命令時,`/cygdrive/c/Windows/system32/pngcrush somefile.jpg newfile.jpg`它會失敗。看起來它可以找到該文件但不能執行它,也許是因為它是在 內執行的cmd,而不是bash.

即,在cmd我輸入:/cygdrive/c/Windows/system32/pngcrush然後我得到The system cannot find the path specified。當cmd我輸入bash,然後在 bash 中輸入相同的內容時,它可以工作。我無法修改 Gem,因為它是由其他人創作的。

答案1

我認為像ruby 這樣的程式不會採用這樣的路徑/cygdrive/c/windows/ ,而是它會有自己的環境,嘗試找出它的環境是什麼,然後嘗試執行一些其他命令並列印它的路徑,你應該了解它是如何呼叫其他程式的。

答案2

安裝 cygwin 版本的 pngcrush 來取代或補充 Windows 版本的 pngcrush。 cygwin 版本應該可以正常運作。

相關內容