Because it avoids the `1>&1` "fake" redirect that is quite hard to understand. It's easier and clearer if, in the top branch, you make it clear that the input _will_ be redirected, and in the second branch you make it clear that there will be _no_ redirection. Then you also do not need to clear the `GENERATED_SQL_FILE` because it is not used:
```
  <#assign redirectIfRequested = " 1> %GENERATED_SQL_FILE%">
...
<#else>
  <#assign redirectIfRequested = "">
</#if>
${deployed.container.javaCmd}...${redirectIfRequested}
```