По какой-то причине мне нужно запустить (надеюсь простой) файл sh под Windows и сделать это из другого приложения. Я могу сделать это с помощью Cygwin, но по разным причинам мне нужно, чтобы эту операцию было легко воспроизвести на другом компьютере (установка Cygwin на другом компьютере не подлежит сомнению).

Первым логическим шагом было скопировать sh.exe в другое место и попробовать запустить его в Windows cmd . Я получил несколько ошибок "отсутствует библиотека", но после копирования:

  • cyggcc_s-1.dll
  • cygreadline7.dll
  • cygncursesw-10.dll
  • cygiconv-2.dll
  • cygintl-8.dll
  • cygwin1.dll

Я могу запустить sh.exe в cmd .

Я попытался запустить файл sh с этой копией sh.exe , но теперь я получаю сообщение об ошибке, что gawk отсутствует. Я пытался скопировать gawk.exe (и необходимые библиотеки) в ту же папку, но sh.exe его не видит (я также пытался скопировать gawk-4.1.1.exe , но результат был тот же).

Я подозреваю, что sh.exe ищет некоторую переменную окружения, которая затем указывала бы на расположение зависимостей (например, gawk.exe), но я не уверен, что это за переменная окружения, и если sh.exe обычные переменные среды Windows.

Итак, мой вопрос, могу ли я запустить sh.exe под Windows cmd (и, в конечном итоге, непосредственно в Windows) и, если да, то как мне обойти описанную выше проблему?

1 ответ1

1

При написании этого вопроса мне в голову пришло несколько идей, и одна из них звучала так: «Если переменная окружения отсутствует, конечно, Cygwin устанавливает ее, когда я ее запускаю».

Я сделал текстовый поиск cygwin\bin и cygwin/bin в папке cygwin а второй указал мне на файл .bashrc . Оказывается, путь, требуемый sh.exe хранился в простой старой переменной среды PATH .

Короче, если я выполню:

SET PATH=%PATH%;.

в cmd я могу затем запустить sh.exe с dependables , расположенных в той же папке (это, вероятно , я , возможно , придется . с некоторым определенным путем позже, но это достаточно хорошо на данный момент). Позже мне, вероятно, придется перенести это в командный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .