build.cmd | ||
pij.c | ||
pijhelp.cc | ||
README.md |
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.