我们如何在 bat 脚本中使用 ROBOCOPY 时使用 Azure DevOps 服务器 2019 的预定义变量
How we can use Azure DevOps server 2019's Predefined variable while using ROBOCOPY in bat script
我创建了一个批处理脚本,在这个脚本中我想使用 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\s$(Build.SourcesDirectory)\myfoldername
Dest : \servername\destinationfolder\Copy
Files : *.*
Options : *.* /V /DCOPY:DA /COPY:DAT /R:1000000 /W:30
注意:我知道有一个任务“Windows Machine File Copy task”
我有一个执行许多任务的 bat 文件,其中一项任务就是这个。
任何人都有想法,我们如何实现?
您正在重新发明轮子。使用 Windows 机器文件复制任务(对于 Windows)或非 Windows 机器的通过 SSH 复制文件任务。
此问题通常发生在无法识别变量时。在 UNIX 系统(MacOS 和 Linux)上,环境变量的格式为 $NAME
。在 Windows 上,批处理格式为 %NAME%
,PowerShell 格式为 $env:NAME
。
系统和用户定义的变量也会作为您平台的环境变量注入。当变量变成环境变量时,变量名变成大写,句点变成下划线。例如,变量名 any.variable 变为变量名 $ANY_VARIABLE.
检查以下在管道中使用变量的批处理脚本示例:
@echo off
echo BUILD_SOURCESDIRECTORY contents:
@dir %BUILD_SOURCESDIRECTORY%
echo Over and out.
我创建了一个批处理脚本,在这个脚本中我想使用 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\s$(Build.SourcesDirectory)\myfoldername
Dest : \servername\destinationfolder\Copy
Files : *.*
Options : *.* /V /DCOPY:DA /COPY:DAT /R:1000000 /W:30
注意:我知道有一个任务“Windows Machine File Copy task”
我有一个执行许多任务的 bat 文件,其中一项任务就是这个。
任何人都有想法,我们如何实现?
您正在重新发明轮子。使用 Windows 机器文件复制任务(对于 Windows)或非 Windows 机器的通过 SSH 复制文件任务。
此问题通常发生在无法识别变量时。在 UNIX 系统(MacOS 和 Linux)上,环境变量的格式为 $NAME
。在 Windows 上,批处理格式为 %NAME%
,PowerShell 格式为 $env:NAME
。
系统和用户定义的变量也会作为您平台的环境变量注入。当变量变成环境变量时,变量名变成大写,句点变成下划线。例如,变量名 any.variable 变为变量名 $ANY_VARIABLE.
检查以下在管道中使用变量的批处理脚本示例:
@echo off
echo BUILD_SOURCESDIRECTORY contents:
@dir %BUILD_SOURCESDIRECTORY%
echo Over and out.