脚本任务删除文件夹在部署阶段失败

时间:2016-09-28 08:33:29

标签: deployment cmd bamboo

我尝试在您的某个项目的部署阶段运行以下脚本。但没有成功。该脚本应删除以 Update 开头的所有文件夹和所有.zip文件,然后将新zip文件复制到目标。

我的剧本:

@echo off
set "pathToCopy=\\{server}\Updates"
set "fileName=Update*.zip"
set "username=user"
set "password=secret"

echo Get network share rights...
net use "%pathToCopy%" /USER:%username% %password%
if not "%errorlevel%"=="0" echo Network access not possible & exit /b 1

for /D %f in ("%pathToCopy%\Update*") do rmdir %f /S /Q

del "%pathToCopy%\Update_*.zip"

copy "%fileName%" "%pathToCopy%"

delcopy命令工作正常,但for rmdir没有,我收到以下消息(SyntaxError)

"pathToCopyf" kann syntaktisch an dieser Stelle nicht verarbeitet werden. (German)

我可以使用本地开发机器中的cmd运行脚本,没有任何问题。当我运行for而没有()

时,我可以从本地计算机重现此错误
for /D %f in "%pathToCopy%\Update*" do rmdir %f /S /Q

那么,Bamboo(5.9.3)中是否存在处理for的错误? 我是否必须重写for? 我还有哪些其他解决方案可以使用通配符删除所有文件夹?

1 个答案:

答案 0 :(得分:1)

终端和批处理文件以两种不同的方式处理%符号。

虽然这可以在终端上使用:

for /D %f in "%pathToCopy%\Update*" do rmdir %f /S /Q

%需要使用另一个%符号进行转义才能从批处理文件中运行:

for /D %%f in "%pathToCopy%\Update*" do rmdir %%f /S /Q