我们如何在bat脚本中使用ROBOCOPY时使用Azure DevOps服务器2019的预定义变量

问题描述 投票:0回答:2

我已经创建了一个批处理脚本,在此脚本中我想使用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

Note:我知道有一个任务“ Windows Machine File Copy task

我有一个执行许多任务的蝙蝠文件,而任务之一就是这个。

任何人都有一个想法,我们如何实现?

batch-file azure-devops robocopy azure-devops-server-2019 predefined-variables
2个回答
0
投票

您正在重新发明轮子。对于非Windows计算机,请使用Windows计算机文件复制任务(对于Windows)或通过SSH复制文件任务。


0
投票

通常无法识别变量时会发生此问题。在UNIX系统(MacOS和Linux)上,环境变量的格式为$NAME。在Windows上,批处理的格式为%NAME%,在PowerShell中的格式为$env:NAME

使用管道中的变量检查以下批处理脚本示例:

@echo off
echo BUILD_SOURCESDIRECTORY contents:
@dir %BUILD_SOURCESDIRECTORY%
echo Over and out.

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/batch-script?view=azure-devops

© www.soinside.com 2019 - 2024. All rights reserved.