gpt4 book ai didi

command-line - MSBuild/cmd 任务 "was unexpected at this time"

转载 作者:行者123 更新时间:2023-12-02 22:35:40 26 4
gpt4 key购买 nike

基本上我有一个命令可以复制源目录(和子目录)的内容,并将结构展平到目标目录中,覆盖所有重复项。

这是从命令行运行的原始命令

for /r 5.1.0.60 %f in (*) do @copy "%f" "deployment" /y

在这种情况下

  • “5.1.0.60”是先前 TeamCity/MSBuild 任务的输出目录
  • “deployment”是步骤的扁平化输出的目标目录

但是,当我从 MSBuild 任务(最终作为 TeamCity 构建的一部分)内部运行此命令时,出现以下错误

f" deployment /y was unexpected at this time

我有以下显示问题的基本 msbuild 脚本:

<Project DefaultTargets="flatten"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
ToolsVersion="3.5">
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />

<PropertyGroup>
<SourceDir>5.1.0.60</SourceDir>
<TargetDir>deployment</TargetDir>
</PropertyGroup>

<Target Name="flatten">
<!-- create our deployment directory -->
<MakeDir Directories="$(TargetDir)"/>

<!-- Copy all files flattenend to the deployment directory-->
<Message Text="##Command [for /r $(SourceDir) %f in (*) do @copy &quot;%f&quot; $(TargetDir) /y]"/>
<Exec Command="for /r $(SourceDir) %f in (*) do @copy &quot;%f&quot; $(TargetDir) /y" />

</Target>
</Project>

最终,如果越线

for /r 5.1.0.60 %f in (*) do @copy "%f" "deployment" /y

进入批处理文件并自行运行批处理文件(在 msbuild 之外)我得到了同样的错误,所以大概这是一个严格的 cmd 问题而不是 MSBuild,尽管我认为这是 MSBuild/TeamCity 中的常见任务我也标记了它们。

如有任何帮助或指点,我们将不胜感激。(注意 Windows 7 专业版,TeamCity 6.5)

最佳答案

FOR 变量在命令行中使用时使用单个百分比 (%f),但在批处理文件中使用时需要两个百分比 (%%f)。

我不确定 TeamCity 是在命令行上下文中还是从临时批处理文件中执行您的命令。

关于command-line - MSBuild/cmd 任务 "was unexpected at this time",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com