|Right, never felt the need to do something like this with batch scripting, so I'm going to stick with theoretical. |
You can run background tasks with START /B, which will keep everything contained to a single window. If the user closes the window, all background processes will quit as well, so that's nice.
The biggest problem is signaling. How does the "background" job tell the "foreground" script it's done processing? Probably the "best" way would be to create a temp file, pass the name of the temp file to the "background" job, and have the background job delete the temp file as its last action. Then you're just checking for the existence of a file, which is simple to do in batch.
The real answer is to use a better language. VBScript/JScript could potentially do what you want asynchronously, depending on what you're trying to do and how you go about it.
PowerShell has actual background jobs, so all of the signaling and management is done for you.
Any programming language with access to the OS of choice's thread support can do this as well.
How To Ask Questions The Smart Way