0

我创建了一个批处理脚本,在这个脚本中我想使用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 文件,其中一项任务就是这个。

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

4

2 回答 2

1

当无法识别变量时,通常会出现此问题。在 UNIX 系统(MacOS 和 Linux)上,环境变量的格式为$NAME. 在 Windows 上,该格式%NAME%适用于批处理和$env:NAMEPowerShell。

系统和用户定义的变量也被注入为您平台的环境变量。当变量变成环境变量时,变量名变成大写,句点变成下划线。例如,变量名 any.variable 变为变量名 $ANY_VARIABLE。

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

@echo off
echo BUILD_SOURCESDIRECTORY contents:
@dir %BUILD_SOURCESDIRECTORY%
echo Over and out.
于 2020-04-06T07:54:35.720 回答
0

你正在重新发明轮子。对非 Windows 机器使用 Windows 机器文件复制任务(适用于 Windows)或通过 SSH 复制文件任务。

于 2020-04-03T15:27:59.263 回答