"Keith Hill [MVP]" wrote:
Quote:
> "Marco Shaw [MVP]" <marco.shaw@_NO_SPAM_gmail.com> wrote in message
> news:#5wKAybMIHA.4476@xxxxxx Quote:
> > Quote:
> >> Is there a way to “pipe” the native command call to a text file and then
> >> read that back into powershell after the command finishes? I tried to do
> >> this but the DOS pipe “>” didn’t work for whatever reason.
> >>
> >> E.g.
> >> & "$TFExecutablePath\.\tf.exe workspace /delete $Name
> >> /s:$TeamFoundationServerUrl /noprompt > c:\test.txt"
> >
> >
> > Try moving "> c:\test.txt" outside of the quotes. >
> And combine with Jon's suggestion:
>
> & "$TFExecutablePath\tf.exe" workspace /delete $Name
> /s:$TeamFoundationServerUrl /i 2>&1 > c:\test.txt
>
> This is something I do all the time with my build scripts (we use TFS also).
> You might also find this useful
>
> #--------------------------------------------------------------------
> # Helper function to deal with legacy exe exit codes
> #--------------------------------------------------------------------
> function CheckLastExitCode {
> param ([int[]]$successCodes = @(0), [scriptblock]$script)
>
> $Scriptname = $MyInvocation.Scriptname
> $ScriptLine = $MyInvocation.ScriptLineNumber - 2
> $failureMessage = (gc $Scriptname)[$ScriptLine]
>
> if ($successCodes -notcontains $LastExitCode) {
> if ($script) {
> "Executing cleanup script: $script"
> &$script
> }
> throw "EXE EXITED WITH CODE ${LastExitCode}: $failureMessage"
> }
> }
>
> The one thing I like about this WRT TF.exe is that TF.exe returns a partial
> success code (1) so you can specify an array of "success" codes in this
> function as well as a cleanup function if it fails e.g.:
>
> tf.exe ....
> CheckLastExitCode 0,1 { tf.exe undo $path /r /i }
>
> --
> Keith
> Thanks for all the suggestions. I ultimately went with adding the 2>&1 to
the end of all of my native commands and i'm now able to see errors/messages
from them in the normal powershell output stream.