我尝试将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的任何使用情况?
在你提供的代码中似乎有一些缺失的项目,但这里是如何进行的最佳猜测:
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和延续字符'^',并将所有的%CURL_CMD% ...
命令放在同一行作为if NOT EXISTS ...
所以,你需要为BOOST_BASE_DIR(我已经添加了一个var到脚本),BOOST_DISTRO_NAME,CURL_CMD ….以及…你需要找出你是否需要echo_run
,我不这么认为。 对于echo_run
,你必须看看你的原始脚本。 我猜想这是一个定义的函数,那就是使用eval
。 如果这是真的,以上可能无法正常工作。 做一个没有IF NOT测试的bat文件,但是用所有的set ...
变量和%CURL_CMD%
,运行它,然后向上面的问题添加失败的输出;-)
我希望这有帮助。
从这里下载Windows的cURL