teamcity

Using the percent sign in TeamCity build scripts


I am trying to set up a TeamCity build process that runs a custom command line script. The script uses a variable so it needs a percent sign (e.g. %x). But TeamCity uses percent signs for its properties (e.g. %build.number%), so the percent sign in the script gets removed when it runs.

If the script contains this:

for /d %x in ("c:\*") do @echo "%x"

This is what it actually runs:

for /d x in ("\*") do @echo "x"

How can I write my script so it can include variables?


Solution

  • Try for /d %%x in ("c:\*") do @echo "%%x" (i.e. duplicate the % signs).

    But there should be a way to tell TC to leave the file alone. It would be horrible if TC would remove the percent signs in the sources. Therefore, I'm pretty sure that you did something in the configuration to enable replacement of %.

    On a similar note, is it really TC that messes with the script? Or are you using a build tool to generate the script or something like that?