Как удалить весь контент из удаленной папки перед загрузкой файлов через SMB с TeamCity - PullRequest
0 голосов
/ 20 марта 2019

Я использую сервер и агент TeamCity на компьютере с Windows.Мой последний шаг в процессе сборки - выгрузить файл bin / release в общую папку Windows на другом сервере через SMB.

Мне нужно удалить все файлы, хранящиеся на удаленном сервере, перед загрузкой новой сборки, но я могуНе могу найти способ сделать это.

Я не вижу такой опции в бегунке загрузки SMB.

1 Ответ

1 голос
/ 23 марта 2019

Да, вы правы, что следует добавить в качестве шага в шагах сборки, я бы предпочел команду 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 удалит исходный каталог после успешного выполнения robocopy.

Если вам нужно напрямую удалить файлы вместо копирования, а затем удаления, вы можете использовать Move

Справочник по Move - https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/move

Я бы лично предпочел копировать и удалять

...