Что такое аналог Windows bash для загрузчика файлов linux sh? - PullRequest
2 голосов
/ 18 июня 2011

Я пытаюсь перенести скрипт установки Linux в Windows.В скрипте у меня есть файл для скачивания вроде

ASL_DISTRO_SITE=surfnet.dl.sourceforge.net
BOOST_NAME=boost_1_44_0
BOOST_VERSION=1.44.0
    if [ ! -e $BOOST_DISTRO_NAME ]; then
        echo_run ${CURL_CMD} http://$ASL_DISTRO_SITE/project/boost/boost/$BOOST_VERSION/$BOOST_DISTRO_NAME -o $BOOST_DISTRO_NAME
    fi

Как перенести такую ​​часть скрипта на язык Windows .bat?Есть ли какие-либо утилиты от MS по умолчанию?

Ответы [ 2 ]

1 голос
/ 19 июня 2011

Кажется, что в предоставленном вами коде есть пара недостающих элементов, но вот лучшее предположение о том, как действовать:

set ASL_DISTRO_SITE=surfnet.dl.sourceforge.net
set BOOST_NAME=boost_1_44_0
set BOOST_VERSION=1.44.0
set BOOST_DISTRO_NAME = xxxx?
set CURL_CMD="c:\program files\curl\curl.exe" ???

cd %BOOST_BASE_DIR%  

if NOT EXISTS %BOOST_DISTRO_NAME% (
    %CURL_CMD% ^
       http://$ASL_DISTRO_SITE/project/boost/boost/%BOOST_VERSION%/%BOOST_DISTRO_NAME% ^
       -o %BOOST_DISTRO_NAME%
)

У меня нет простого способа проверить это, поэтому, если он не работает, удалите открывающие и закрывающие парены и символ продолжения '^', и поместите все команды %CURL_CMD% ... в одну строку как if NOT EXISTS ....

Итак, вам нужно предоставить значения для BOOST_BASE_DIR (которые я добавил как сценарий в качестве переменной), BOOST_DISTRO_NAME, CURL_CMD .... И ... вам нужно выяснить, если вам нужно echo_run, я не так не думаю. Для echo_run вы должны посмотреть на свой оригинальный сценарий. Я думаю, что это определенная функция, которая использует eval. Если это правда, вышеупомянутое может не работать. Создайте файл bat без теста IF NOT, но со всеми переменными set ... и %CURL_CMD%, запустите его, а затем добавьте вывод ошибки в приведенном выше вопросе; -)

Надеюсь, это поможет.

0 голосов
/ 18 июня 2011

Загрузите cURL для Windows с здесь

...