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