参考:https://www.cnblogs.com/tail-f/p/6723199.html
%cd% 获取当前执行批处理的cmd目录(权限不同目录不同),管理员权限运行目录则为system32
%~dp0 获取当前目录路径
%windir% 获取windows目录路径
%~d0 获取当前盘符
%~sdp0 获取当前盘符和路径的短文件名格式
%~f0 获取此批处理的路径
@ECHO OFF
@cls
::################################################################################
>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
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
:gotAdmin
@echo #####################################################################
@echo # #
@echo # 自动注册当前目录下全部.ocx文件 #
@echo # #
@echo #####################################################################
cd /d %~dp0
echo; Windows System: %processor_architecture%
::==============================================
if "%processor_architecture%"=="x86" (
set sysPath=%windir%\system32
) else (
if "%processor_architecture%"=="AMD64" (
set sysPath=%windir%\SysWOW64
)
)
echo %sysPath%
::##############################################
for /f "delims=" %%i in ('dir /b /a-d %~dp0\*.OCX') do (
copy /y %%i %sysPath%
echo; 注册 %sysPath%\%%i%
regsvr32 %sysPath%\%%i ::regsvr32 /s %sysPath%\%%i :: 不显示注册结果提示框
)
goto exit
::##############################################
:exit
@echo; -----------------------------------
@echo 配置完成
@echo;
@echo 按任意键退出...
@pause>nul