/pij

Windows: run Process tree In a Job

Primary LanguageC

PIJ - Run process tree in a job and wait for completion.

Usage

pij my-program.exe arguments...

Purpose

Ensure the whole subtree of processes has completed before the batch file continues.

Let's assume that my-program.exe does something useful unattended, making it usable from batch files. However, its initial process just starts another process to do the real thing, and then exits, not waiting for that another process to finish. START /W won't help in this case, as it will return as soon as the initial process exits.

PIJ runs the whole subtree of processes-running-processes in a single job and waits for this job to become empty before exiting.

Result code (ERRORLEVEL)

PIJ terminates with non-zero exit code if there's some problem during initial process creation or waiting phase. Zero exit code is returned when the last process in the job exits.

Restrictions

All arguments are passed to CreateProcess'es lpCommandLine, hence some restrictions on what you can start: it should be a real EXE file (please start cmd.exe if you want to run another batch file), standard directories and PATH are used, registry AppPaths aren't.

Author

Written by Anton Kovalenko anton@sw4me.com. My code is public domain. Uses some code by Raymond Chen.