使用bat腳本,先殺死exe進程,再啓動exe
restart.bat
@echo off ::注意保存編碼格式爲ANSI,否則中文亂碼 taskkill /f /im "Restart.exe" echo "exe進程停止成功" ::休眠10s timeout /t 10 /nobreak start "" "E:\Restart\x64\Debug\Restart.exe" echo "exe進程啓動成功"
控制檯程序 Restart.exe
main.cpp
#include<Windows.h> int main() { Sleep(5000); //WinExec("restart.bat", SW_HIDE); //非阻塞 system("restart.bat"); //阻塞 }
restart.bat放到生成的Restart.exe路徑中,雙擊exe即可。
注意,WinExec和system都是執行腳本的函數,但是前者是非阻塞的,後者是阻塞的。
使用”非阻塞“代碼時,提示沒找到進程。原因是程序已經執行完畢,exe已經退出,腳本才執行起來,其實腳本沒有問題。
建議使用”阻塞“代碼來執行腳本。