驱动安装-以管理员身份运行
源码如下:
@echo off
echo Run as administrator
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto as_admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:as_admin
cd /d %~dp0
echo Installing Camera driver...
devcon.exe install driver\abc.inf abc_node
pause
这个批处理脚本的目的是确保以管理员权限运行,并在以管理员权限运行的情况下安装一个摄像头驱动程序。以下是脚本逐行解释:
@echo off
- 关闭命令行回显,这样在执行脚本时不会显示每一行命令。
echo Run as administrator
- 输出一行提示信息,告知用户需要以管理员权限运行脚本。
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
- 使用
cacls.exe
命令测试是否有权限访问系统卷信息目录。cacls
是一个用于修改文件和目录权限的工具。>nul 2>nul
将标准输出和标准错误输出都重定向到空设备,即不显示这些输出。
- 使用
if %errorlevel%==0 goto as_admin
- 检查上一个命令的返回码(
%errorlevel%
)。如果返回码为 0(表示有权限),则跳转到:as_admin
标签处。
- 检查上一个命令的返回码(
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
- 如果
%temp%\getadmin.vbs
文件存在,则删除它。/f
强制删除,/q
不显示提示信息。
- 如果
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
- 创建一个 VBScript 文件
getadmin.vbs
。该脚本的内容用于请求管理员权限。^
是转义字符,用于在echo
命令中插入特殊字符("
)。
- 创建一个 VBScript 文件
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
- 向
getadmin.vbs
文件追加一行代码,使用ShellExecute
方法以管理员权限重新运行当前批处理脚本 (%~s0
是当前批处理文件的完整路径)。
- 向
echo WScript.Quit >>"%temp%\getadmin.vbs"
- 向
getadmin.vbs
文件追加一行代码,完成脚本执行后退出。
- 向
"%temp%\getadmin.vbs" /f
- 运行生成的 VBScript 文件以请求管理员权限。
/f
选项是不必要的,可能是个错误或多余的。
- 运行生成的 VBScript 文件以请求管理员权限。
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
- 如果 VBScript 文件还存在,则删除它。这样可以确保脚本运行后不会留下不必要的文件。
exit
- 退出当前批处理脚本。
:as_admin
- 标签,标记为
as_admin
,如果脚本已经以管理员权限运行,会跳转到这里。
- 标签,标记为
cd /d %~dp0
- 更改当前目录到批处理文件所在的目录。
%~dp0
是批处理文件的驱动器和路径。
- 更改当前目录到批处理文件所在的目录。
echo Installing Camera driver...
- 输出一行信息,提示正在安装摄像头驱动程序。
devcon.exe install driver\VCam_WDM.inf VCam_WDM
- 使用
devcon.exe
工具安装摄像头驱动程序。driver\VCam_WDM.inf
是驱动程序的安装文件,VCam_WDM
是驱动程序的设备实例名称。
- 使用
pause
- 暂停脚本执行,等待用户按任意键继续。这有助于用户查看安装结果或任何错误信息。
总结来说,这个脚本的工作流程是:首先检查是否以管理员权限运行,如果不是,则通过生成和运行 VBScript 文件请求管理员权限;如果已是管理员权限,则更改到脚本所在目录并安装指定的驱动程序。