Задача exec MSBuild с for

Я пытаюсь запустить следующие команды как часть сценария MSBuild:

for /R . %f in (*.targets) do copy /Y "%f" "C:\Program Files (x86)\MSBuild\Microso
ft\VisualStudio\TeamBuild"

Команды реализованы в exec следующим образом:

<Exec WorkingDirectory="$(SolutionRoot)" Command="for /R . %f in (*.targets) do copy /Y &quot;%f&quot; &quot;$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild&quot;" />

Команда отлично работает с консоли, но при попытке запустить ее из MSBuild я получаю сообщение об ошибке:

Task "Exec"
  Command:
  for /R . %f in (*.targets) do copy /Y "%f" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild"
  f" "C:\Program was unexpected at this time.
C:\Users\rd-build\AppData\Local\Temp\OH Test2\Continuous.BuildTargets\BuildType\TFSBuild.proj(98,5): error MSB3073: The command "for /R . %f in (*.targets) do copy /Y "%f" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\TeamBuild"" exited with code 255.
Done executing task "Exec" -- FAILED.

Какие-либо предложения?

Ответов (2)

Решение

Я только что объяснил в вашем предыдущем вопросе. В этом случае вам нужно добавить дополнительный% перед вашими переменными. Это объясняется с помощью команды FOR следующим образом.

Чтобы использовать команду FOR в пакетной программе, укажите переменную %% вместо переменной%.

Пришлось использовать %%, а не%.