1、建立 vbs 文件:
REM 獲取 VBS 文件路徑 currentDirectory = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\") -1) REM 在下面修改需要運行的 bat 文件名稱(需要將此 vbs 和 bat 放置在同一文件夾下) batFilePath = "run_service_later.bat" REM 以管理員身份並靜默執行上面指定的 bat 腳本 CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c """ & currentDirectory & "\" & batFilePath & """", , "runas", 0
想要絕對路徑的自己修改,想不用管理員身份運行的自己搜索吧。。。
2、建立 bat 文件:
@echo off cd /d %~dp0 :: 判斷管理員權限 net.exe session 1>NUL 2>NUL && ( goto as_admin ) || ( goto not_admin ) :as_admin echo 已經是管理員身份,不再申請 goto gogogo :not_admin echo 非管理員身份,申請權限 @ECHO OFF&PUSHD %~DP0 %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof :runas :gogogo :: 此處修改為需要運行的服務名稱 set servicename=SunloginService :: 此處修改為需要延時執行的秒數 set delaysecond=2 echo 延遲 %delaysecond%秒 ping 127.0.0.1 -n %delaysecond% > nul echo 檢查服務狀態... for /f "skip=3 tokens=4" %%i in ('sc query %servicename%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" (goto running) if /i "%zt%"=="STOPPED" (goto 2) :1 echo %servicename% 服務在運行,將停止服務 echo 'net stop %servicename%' echo made by doudou ping 127.0.0.1 -n 5 >nul exit :2 echo %servicename% 服務未運行,將啟動服務 net start %servicename% echo made by doudou ping 127.0.0.1 -n 5 >nul exit :running echo 服務在運行,程序結束 ping 127.0.0.1 -n 5 >nul exit pause>null
如果不需要靜默運行,該 bat 可以獨立運行。需要改什么功能的自己看着來吧。。。
3、如需自啟,請在下面路徑中建立 vbs 或 bat 的快捷方式(Windows 10):
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
