Search code examples
.netvisual-studiopost-buildfor-in-loop

Visual Studio Post-build event: for %f in (set) command


This command in the Visual Studio 2010 Post-build event

for %f in ("$(ProjectDir)$(OutDir)*.dll") do echo %f

(echo will be replaced with some other tool) gives me the error

The command "[...]" exited with code 255.

I guess I have to escape the outermost round brackets but I don't know how. I tried \( and ((.


Solution

  • You might need to use %%f instead of %f for the first one (and maybe the second one). In a batch file (which VS might use to implement these custom build steps), you have to use the extra % for identifiers.

    Edit: here's the first part of the output from help for on the command line.

    Runs a specified command for each file in a set of files.

    FOR %variable IN (set) DO command [command-parameters]

    %variable Specifies a single letter replaceable parameter. (set) Specifies a set of one or more files. Wildcards may be used. command Specifies the command to carry out for each file. command-parameters Specifies parameters or switches for the specified command.

    To use the FOR command in a batch program, specify %%variable instead of %variable. Variable names are case sensitive, so %i is different from %I.