Geoff Chappell - Software Analyst
response files nested too deeply
Expansion of response files (also called command files) is ordinarily recursive, so that a command-line token in a command file may itself name another command file. Error D2035 can occur only because such nesting has gone too far. The current implementation allows 13 levels.
Let the file “test01.txt” contain just
and the file “test02.txt” contain
continuing to “test12.txt” containing
with “test13.txt” finally naming a source file:
Then the command
cl /c @test01.txt
compiles the source file. However, if “test13.txt” instead contains
then it doesn’t matter whether a file “test14.txt” even exists: the recursion can go no further and error D2035 is the result.
It seems plausible that error D2035 occurs most often in practice not because command files have intentionally been nested so deeply but instead because the nesting has become circular.
When describing command-line directives that begin with an @ sign, the product documentation states explicitly that “it is not possible to specify the @ option from within a response file.” This would, of course, mean that error D2035 has no reason to exist. In fact, the error is even documented, which appears to be the product documentation’s only acknowledgement that command files can in fact be nested.