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

Установите версию pngcrush для cygwin вместо или в дополнение к версии pngcrush для Windows. Версия cygwin должна работать правильно.

Связанный контент