I am trying to create a script that will “self update” when it detects a new version on a server. Initially the idea I had was, when a new version is detected, download the file, then starts a DOS batch file that simply overwrites the original exe with the new one. I thought, that I could use sytem(start update.bat ) then immediately exit 0; The .bat file waits for a couple seconds, and then tries to delete the old exe. This fails, I guess because even when using system(start … ), the new “process” is actually the same process, is this correct? Is there any way to launch a completely new process from perl in windows, that would allow me to delete the .exe? Or is there a different approach that would be better?
Thanks,
Eric Seifert
See the documentation on the Windows Restart Manager, an API introduced with Windows Vista that manages restarting applications, for updates, for you.