从MsBuild使用Exec时如何切掉命令行

从MsBuild使用Exec时如何切掉命令行,msbuild,Msbuild,在我的构建中,我希望将源文件列表提供为clang格式。我在MsBuild中执行此操作。我发现ItemGroup中的文件列表可能相当大。我可以按如下方式格式化命令行: $(MSBuildThisFileDirectory)clang-format.exe -style=file -output-replacements-xml %(ClangFilesToFormat.Identity) 但是,我认为我超出了最大命令行长度,因此命令失败。所以,我想在成批的X文件中调用clang格式。我不想为每个

在我的构建中,我希望将源文件列表提供为clang格式。我在MsBuild中执行此操作。我发现ItemGroup中的文件列表可能相当大。我可以按如下方式格式化命令行:

$(MSBuildThisFileDirectory)clang-format.exe -style=file -output-replacements-xml %(ClangFilesToFormat.Identity)
但是,我认为我超出了最大命令行长度,因此命令失败。所以,我想在成批的X文件中调用clang格式。我不想为每个单独的文件调用它,因为这样做太慢了

如何将项目组拆分为X个项目的批次,或者以其他方式解决此问题


谢谢

没有上下文很难说,但是我希望语法
%(ClangFilesToFormat.Identity)
会导致批处理(因此,为每个文件调用命令)。假设
clangformat.exe
希望文件以空格分隔,我想您应该使用
@(ClangFilesToFormat,')
。首先考虑使用下面的诊断行来验证您正在获得所需的字符串。

<Error Text="ClangFilesToFormat: @(ClangFilesToFormat, ' ')" />

如果没有上下文,很难判断,但我希望语法
%(ClangFilesToFormat.Identity)
会导致批处理(因此,为每个单独的文件调用命令)。假设
clangformat.exe
希望文件以空格分隔,我想您应该使用
@(ClangFilesToFormat,')
。首先考虑使用下面的诊断行来验证您正在获得所需的字符串。

<Error Text="ClangFilesToFormat: @(ClangFilesToFormat, ' ')" />