Запуск sh.exe в windows cmd.exe: команда не найдена
По какой-то причине мне нужно запустить (надеюсь, простой) 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
уважайте простые переменные окружения окон.
Итак, мой вопрос, могу ли я бежать sh.exe
под виндой cmd
(и в конечном итоге непосредственно в Windows), и если да, то как мне обойти проблему, описанную выше?
1 ответ
Во время написания этого вопроса мне в голову пришло несколько идей, и одна из них звучала так: "Если переменная окружения отсутствует, конечно, Cygwin устанавливает ее, когда я ее запускаю".
Я сделал текстовый поиск для cygwin\bin
а также cygwin/bin
в cygwin
папка и второй указал мне на .bashrc
файл. Оказывается путь, требуемый sh.exe
хранился в старом добром PATH
переменная окружения.
Короче, если я выполню:
SET PATH=%PATH%;.
в cmd
Я могу тогда бежать sh.exe
с надежными файлами, расположенными в одной папке (вероятно, мне придется заменить .
с каким-то конкретным путем позже, но пока этого достаточно). Позже мне, вероятно, придется перенести это в командный файл.