This is part XXII of cmd.exe engine rewrite.
It tackles bug id 55151. The root cause is that native doesn't keep the batch/command file opened while processing each command in that file.
This allows: - the batch file to delete itself (described in here above mentionned bug report) - but also to modify the batch file on the fly...
Quite a bit of refactoring to no longer depend on the file handle as a reference the batch file.