管理员权限执行批处理和执行regsvr32注册dll、OCX、AX等控件
程序员文章站
2022-06-25 18:47:00
...
参考:https://www.cnblogs.com/tail-f/p/6723199.html
公司软件部署经常需要注册.com组件,之前的bat批处理需要右键管理员权限运行才行。这里发布一小段命令可以免去这个步骤。
@echo off
color 0
REM ________________________________________________________________
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
REM ________________________________________________________________
echo=
echo=
echo 管理员权限已获取,正在执行COM注册******
echo=
regsvr32 LAVAudio.dll /s
echo 完成LAVAudio.dll注册
regsvr32 LAVSplitter.dll /s
echo 完成LAVSplitter.dll注册
regsvr32 LAVVideo.dll /s
echo 完成LAVVideo.dll注册
echo=
echo .AX组件注册完成。
ping -n 3 127.0.0.1>nul
此批处理文件必须和.dll文件放在同一个目录执行。
%cd% 获取当前执行批处理的cmd目录(权限不同目录不同),管理员权限运行目录则为system32
%~dp0 获取当前目录路径
%windir% 获取windows目录路径
%~d0 获取当前盘符
%~sdp0 获取当前盘符和路径的短文件名格式
%~f0 获取此批处理的路径
下一篇: 【蓝桥杯备战】STL中sort的坑