我正在尝试在Windows机器上创建一个Jenkins构建,并且遇到了我完全不确定该怎么做的情况。 我有以下shell脚本,我需要转换为Windows批处理脚本,以便在构建运行时。我相信变量的设置正确,只是不确定如何处理其余部分:
#set POWERUSER=DTCURTISS
#set POWERPASS=password
set POWERUSER=auto
set POWERPASS=password
set TAG=$BUILD_NUMBER
set PATH=.env/bin:$PATH
set SAUCEUSER=DarthOpto
set ACCESSKEY=accesskey
set IGNOREPAGEHEADERLOCATION=True
set MAINMENUCLICKTILES=False
set LOGDIR=logs
source ../.env/bin/activate
cd trunk/automation/selenium/src
#pip install -r pip-requires.txt
rm -rf logs
nosetests --nocapture --with-xunitmp -a valallmod --processes=$THREADS --process- timeout=5000
答案 0 :(得分:1)
如果你不知道batch-file,你就不会走得太远。此外,简单地“翻译”bash
到batch
并不会神奇地使其在Windows上运行。
变量被引用为%VARNAME%
,而不是$VARNAME
。先解决这个问题。
Windows使用\
作为路径分隔符,而不是/
。更改所有路径以使用\
如果要在Windows中附加PATH
变量,则必须确保不要销毁现有的PATH
。您可以通过set PATH=%PATH%;C:\whatever\yourpath\
与source
类似的是批处理call
,后跟另一个批处理文件名。但是,您不能只传递它../.env/bin/activate
,因为它不是批处理文件。您还需要将该文件转换为批处理。并且不要忘记将路径分隔符转换为\
。这也是我的第二点发挥作用的地方。您粘贴的文件相当简单。我不知道其他文件里面是什么,或者它是否可以“翻译”。
#
不是批量有效评论,您需要使用REM
或更好::
rm
并且它的标志不是Windows命令。等价物是rmdir /s /q
最后,nosetests
既不是bash也不是批处理。这是一个外部程序。你必须确保它在Windows中可用。作为下一个问题之前的先发制人,请阅读:'nosetests' not recognized on Windows after being installed and added to PATH