@echo off
set one=%~1
echo input params: %one%
if "%one%"=="" ( echo Input no params ) else (
taskkill /F /IM "HiDaemon.exe" /T
rem kill root path exe
for /f "delims=" %%i in ('dir /b "%~dp0\*.exe"') do (
(TASKLIST|FIND /I /c "%%i")
if errorlevel 1 (echo %%i is stop) else (taskkill /F /IM "%%i")
)
xcopy /y /s "%~dp0\Update" "%~dp0"
rd /s /q "%~dp0\Update"
start /d "%~dp0" %~1
)
C++中以管理员身份运行bat的函数调用:
ShellExecute(0, (LPCWSTR)L"runas", file.toStdWString().c_str(), strParam1.toStdWString().c_str(), (LPCWSTR)L"", SW_SHOWNORMAL);
bat脚本中以管理员权限执行命令
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit