cmd kann die Datei innerhalb von /cygdrive/c/ nicht ausführen

cmd kann die Datei innerhalb von /cygdrive/c/ nicht ausführen

Ich führe eine Ruby on Rails-Anwendung aus. In der App habe ich ein Ruby Gem geladen, das den Speicherort einer ausführbaren Datei namens bestimmt pngcrush. Dies geschieht, indem es den Befehl ausführt which pngcrush, der zurückgibt /cygdrive/c/Windows/system32/pngcrush. Wenn das Gem jedoch versucht, den Befehl mithilfe eines Systemaufrufs auszugeben, schlägt dies fehl. Es scheint, dass es die Datei FINDEN, aber nicht ausführen kann, möglicherweise weil sie innerhalb von und nicht `/cygdrive/c/Windows/system32/pngcrush somefile.jpg newfile.jpg`innerhalb von ausgeführt wird .cmdbash

d. h., innerhalb cmdvon gebe ich ein: /cygdrive/c/Windows/system32/pngcrushund bekomme The system cannot find the path specified. Wenn cmdich in eingebe bashund dann in Bash dasselbe eingebe, funktioniert es. Ich kann das Gem nicht ändern, da es von jemand anderem erstellt wurde.

Antwort1

Ich denke, ein Programm wie Ruby verwendet keine Pfade wie diesen /cygdrive/c/windows/, sondern hätte eher eine eigene Umgebung. Versuchen Sie herauszufinden, was seine Umgebung ist, und versuchen Sie dann, einen anderen Befehl auszuführen und dessen Pfad auszudrucken. Sie sollten verstehen, wie es andere Programme aufruft.

Antwort2

Installieren Sie die Cygwin-Version von pngcrush anstelle oder zusätzlich zur Windows-Version von pngcrush. Die Cygwin-Version sollte ordnungsgemäß funktionieren.

verwandte Informationen