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`内执行的。cmdbash

即,cmd我在 中输入: ,/cygdrive/c/Windows/system32/pngcrush然后我得到The system cannot find the path specified。当cmd我在 中输入bash,然后在 bash 中输入相同的内容时,它可以正常工作。我无法修改 Gem,因为它是由其他人创作的。

答案1

我认为像 ruby​​ 这样的程序不会采用像这样的路径 /cygdrive/c/windows/,而是会有自己的环境,尝试弄清楚它的环境是什么,然后尝试执行其他命令并打印其路径,您应该了解它是如何调用其他程序的。

答案2

安装 pngcrush 的 cygwin 版本,以替代 Windows 版本的 pngcrush,或作为 pngcrush 的补充。cygwin 版本应该可以正常运行。

相关内容