在使用TeamCity通过SMB上传文件之前,如何从远程文件夹中删除所有内容

时间:2019-03-20 17:09:16

标签: windows teamcity smb

我正在Windows计算机上运行TeamCity服务器和代理。构建过程的最后一步是通过SMB将bin / release文件上传到另一台服务器上的共享Windows文件夹中。

在上传新版本之前,我需要删除远程服务器上所有归档的文件,但是找不到解决方法。

我在SMB上传运行程序中看不到任何此类选项。

1 个答案:

答案 0 :(得分:1)

是的,您是正确的,应该将其作为构建步骤下的一个步骤添加,我希望使用类似这样的powershell命令

robocopy \\%WebServer1%\%SourceFolder% \\%WebServer1%\%DestinationFolder% /E /PURGE /IS /COPY:DT /R:1 /W:2
RMDir /S "%WebServer1%\%SourceFolder%

Where, 
    /E - Copies sub directories
    /PURGE - Deletes destination files and directories that no longer exist in the source
    /COPY:DT - Specifies the file properties to be copied, in this case it copies Data and Timestamps
    /R:1 - Specifies the number of retries on failed copies, in this case it is 1
    /W:2 - Specifies the wait time between retries, in seconds, in this case it is 2 seconds
    /s - Includes subdirectories

一旦自动复制成功,RmDir将删除源目录。

如果您需要直接删除文件而不是先复制再删除,则可以使用Move

移动参考-https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/move

我个人更喜欢复制和删除