PDA

View Full Version : Echoing command line in %LASTSTEP_OUTPUT%


mevans
03-31-2016, 06:53 PM
I don't know if this is a bug or if it's something intentional:

I was trying to capture the output of my Oracle script in %LASTSTEP_OUTPUT%, but I kept getting the command line inserted before the output. I tried various Oracle commands, thinking it was sqlplus that was echoing the command line, and I couldn't find any way to get rid of it. Finally, I went to the Visual Build Oracle action, Advanced tab, and unchecked "Log the command-line that is used." I ran my script again, and there was no command line to be found in%LASTSTEP_OUTPUT%.

So, that solved my immediate problem; however, I find that it can be helpful to have the command line logged in the output window and the LOGFILE. With this solution, I have no record of the command line. My expectation was that "Log the command-line..." would put it in the Output window and the LOGFILE, but not write it to %LASTSTEP_OUTPUT%.

Is this a bug, or perhaps I'm missing some reason for this behavior? Admittedly, I haven't paid attention to other actions that have the option to log the command line, so I don't know if this is consistent or inconsistent with those.

kinook
03-31-2016, 09:02 PM
It is intentional that all logged output, including the command-line if that option is checked (or if logging of the default step property is enabled), is included in the LASTSTEP_OUTPUT macro.

What you could do is remove the first line of the output before processing.

Sub vbld_StepDone()

' remove first line of output, including CR/LF
out = Application.ExpandMacrosAndScript("%LASTSTEP_OUTPUT%")
out = Mid(out, InStr(out, vbCrLf)+2)
Builder.LogMessage "LASTSTEP_OUTPUT with first line removed:"
Builder.LogMessage out

End Sub