什么是windows bash模拟linux sh文件下载程序



我尝试将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的utils?

您提供的代码中似乎缺少几个项目,但以下是如何进行的最佳猜测:

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 filescurlcurl.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%
)

我没有一个简单的方法来测试它,所以如果它不起作用,请删除打开和关闭的parens和延续字符'^',并将所有%CURL_CMD% ...命令与if NOT EXISTS ...放在同一行。

因此,您需要提供BOOST _BASE_DIR(我已将其作为var添加到脚本中)、BOOST _DISTRO_NAME、CURL_CMD的值。。。。而且。。。你需要知道你是否需要echo_run,我不这么认为。对于echo_run,你必须查看你的原始脚本。我猜这是一个定义的函数,它使用eval。如果这是真的,那么以上可能不起作用。制作一个不包含IFNOT测试,但包含所有set ...变量和%CURL_CMD%的bat文件,运行它,然后将失败的输出添加到上面的问题中;-)

我希望这能有所帮助。

从这里下载适用于Windows的cURL

最新更新