笔者安装了一款软件(VisualSVN,版本控制软件的一种),安装完后是以服务的方式存在于系统中,本来是可以在电脑-管理-服务中设置该服务为自动启动的,但是不知道什么原因,导致现在每次开机需要手动开启服务,为此想找一种方法可以开机自启动该服务。
工具/原料
bat文件
方法/步骤
1、刚开始是想着直接把cmd命令netstartVisualSVNServer放在bat文件中,命名startsvnserver.bat,放在系统启动文件夹中。这样开机自启应该就没问题了。
2、但是这样操作以后,开机之后服务还是没有重启。检查了一下,发现直接双击bat文件是没有办法启动服务的,意味着要右键以管理员身份运行才行,但是这样的话,就只能手动操作了。
3、为了免去每次开机都要手动运行的烦恼,试着在bat文件中添加一些命令,在运行netstartVisualSVNServer之前先获得管理员身份,这样就可以执行这个命令了。下面贴出命令,有需要的直接将这些复制到bat文件中@echooff CLS ECHO. ECHO================================ ECHO获取批处理文件管理员权限 ECHO================================ :init setlocalDisableDelayedExpansion set"batchPath=%~0" for%%kin(%0)dosetbatchName=%%~nk set"vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" setlocalEnableDelayedExpansion :checkPrivileges NETFILE1>NUL2>NUL if'%errorlevel%'=='0'(gotogotPrivileges)else(gotogetPrivileges) :getPrivileges if'%1'=='ELEV'(echoELEV&shift/1&gotogotPrivileges) ECHO. ECHO******************************** ECHO请求UAC权限批准 ECHO******************************** ECHOSetUAC=CreateObject^("Shell.Application"^)>"%vbsGetPrivileges%" ECHOargs="ELEV">>"%vbsGetPrivileges%" ECHOForEachstrArginWScript.Arguments>>"%vbsGetPrivileges%" ECHOargs=args^&strArg^&"">>"%vbsGetPrivileges%" ECHONext>>"%vbsGetPrivileges%" ECHOUAC.ShellExecute"!batchPath!",args,"","runas",1>>"%vbsGetPrivileges%" "%SystemRoot%\System32\WScript.exe""%vbsGetPrivileges%"%* exit/B :gotPrivileges setlocal&pushd. cd/d%~dp0 if'%1'=='ELEV'(del"%vbsGetPrivileges%"1>nul2>nul&shift/1) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: rem本行以下添加可你需要的命令 ECHOnetstartVisualSVNServer ECHO.
4、注意:win10的启动文件夹的打开方式为:win键+R,输入shell:startup将该bat文件放在这里,下次开机就会执行该文件