我正在通过TeamCity运行删除脚本并收到以下错误:
dir : Access is denied
At line:1 char:1
+ dir 'c:\inetpub\wwwroot\camping.info' -exclude docs,log,CampsiteImages*,_generat ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand
在TeamCity中,我运行一个命令行文件。在此文件中,执行这些命令:
set POWERSHELLEXE=c:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
set FOLDER=c:\inetpub\wwwroot\folder
%POWERSHELLEXE% "dir '%FOLDER%' -exclude docs,log,CampsiteImages*,_generated,App_Code,App_Data,pics,style,temp,google*.html,app_offline.htm,robots.txt | del -Recurse -verbose"
命令有时会运行且没有错误。但通常它会在退出上述错误之前删除一些文件夹。 (由于-verbose
标志,我们可以看到错误之前的删除。)如果出现错误,它似乎每次都停在同一个文件夹中。我们在不同的服务器上使用相同的脚本:在一台服务器上,脚本永远不会有错误,在另一台服务器上,它很少发送错误 - 如果是,则在不同的文件夹上。所有服务器都具有相同的PowerShell和TeamCity版本。
出现此错误的原因是什么?
(我已经尝试在调用delete命令之前插入一个等待时间 - 这没有改变任何东西。)