Author Posts

January 1, 2012 at 12:00 am

by antonela at 2013-04-04 00:45:16

in a .cmd I use at the end:

exit /B %ERRORCODE% (where ERRORCODE=%errorlevel%)
In this way I know how my .cmd finishes and I can use this variable for a traffic light in another program.
How could I write something similar in powershell?

I use $LastExitCode to test the errors...
exit /B $LastExitCode doesn't function

by nohandle at 2013-04-04 07:17:00

I am not sure if you:
1) are trying to replace existing batch file with a powershell script while maintaining the same behavior
2) are trying to detect exit code of a batch file that was run from powershell srcipt

Which one is it?

by antonela at 2013-04-05 02:27:29

the first one.

In my file 1.ps1 I use
sqlcmd -S server -d dbase -b -Q "EXEC pr_MAIN_OLAP"

after this row I put
if ( $LastExitCode -ne 0) { write-host "error!"
exit $LastExitCode
}
exit $LastExitCode

If I run this file (powershell.exe 1.ps1) I'm not sure if using exit $LastExitCode it's enough to have the exit code I need.
0 -OK
1- Error

What do you think?

by nohandle at 2013-04-05 02:58:20

If you are not sure try it 🙂
Save this in c:\temp\test.ps1 file
sqlcmd give me error
exit $lastExitCode

and from the old command line run:
powershell -file "c:\temp\test.ps1"
echo %errorlevel%

Do you get 1?

by antonela at 2013-04-05 05:27:01

thank you very much