什么是windows bash模拟linux sh文件下载器?

时间:2011-06-18 19:11:47

标签: windows linux bash 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的工具?

2 个答案:

答案 0 :(得分:1)

您提供的代码中似乎有一些丢失的项目,但这里是对如何继续进行的最佳猜测:

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

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

因此,您需要为BOOST_BASE_DIR(我已将其作为var添加到脚本中)提供值,BOOST_DISTRO_NAME,CURL_CMD .... AND ...您需要找出是否需要echo_run,我不这么认为。对于echo_run,您必须查看原始脚本。我猜这是一个定义的函数,它使用eval。如果是这样,以上可能无效。制作没有IF NOT测试的bat文件,但是使用所有set ...变量和%CURL_CMD%,运行它,然后将失败的输出添加到上面的问题中; - )

我希望这会有所帮助。

答案 1 :(得分:0)

here

下载适用于Windows的cURL