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



我尝试在一个项目的部署阶段运行以下脚本。但是没有成功。脚本应该删除所有文件夹和所有以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命令工作正常,但forrmdir没有,我得到以下消息(SyntaxError)

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

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

时,我可以在本地机器上重现此错误。
for /D %f in "%pathToCopy%Update*" do rmdir %f /S /Q

所以,有一个Bug在竹(5.9.3)处理for ?我必须重写我的for吗?如果要使用通配符删除所有文件夹,还有其他的解决方案吗?

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

虽然这将在终端上工作:

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

%需要用另一个%符号转义才能从批处理文件中工作:

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

最新更新