Как мы можем использовать предопределенную переменную Azure DevOps server 2019 при использовании ROBOCOPY в скрипте bat - PullRequest
0 голосов
/ 03 апреля 2020

Я создал один пакетный скрипт, в этом скрипте я хочу использовать Build.SourcesDirectory переменная.

Вот пакетный скрипт:

ROBOCOPY $(Build.SourcesDirectory)\myfoldername \\servername\destinationfolder\Copy /V

Также попробовал вот это:

ROBOCOPY "$(Build.SourcesDirectory)\myfoldername" "\\servername\destinationfolder\Copy" /V

но получаю ошибку, и путь тоже не идет

Вот мой конвейерный вывод

ROBOCOPY::     Robust File Copy for Windows                              

Source : E:\DevOps\Agent\vsts-agent-win-x64-2.144.2\_work\6\s\$(Build.SourcesDirectory)\myfoldername
Dest : \\servername\destinationfolder\Copy

 Files : *.*

Options : *.* /V /DCOPY:DA /COPY:DAT /R:1000000 /W:30

Примечание : Я знаю, что есть одна задача "Windows Задача копирования файла машины "

У меня есть один файл bat, который выполняет много задач и одну из задач это.

У кого-нибудь есть идеи, как мы можем достичь?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Эта проблема обычно возникает, когда переменная не распознана. В UNIX системах (MacOS и Linux) переменные среды имеют формат $NAME. На Windows формат %NAME% для пакета и $env:NAME в PowerShell.

Системные и пользовательские переменные также вводятся как переменные среды для вашей платформы. Когда переменные превращаются в переменные среды, имена переменных становятся заглавными, а точки превращаются в подчеркивания. Например, имя переменной any.variable становится именем переменной $ ANY_VARIABLE.

Проверьте следующий пример пакетного сценария, использующего переменную в конвейере:

@echo off
echo BUILD_SOURCESDIRECTORY contents:
@dir %BUILD_SOURCESDIRECTORY%
echo Over and out.
0 голосов
/ 03 апреля 2020

Вы заново изобретаете колесо. Используйте задачу Windows Копирование машинного файла (для Windows) или задачу Копировать файлы поверх S SH для машин, не являющихся Windows.

...