nul 2>nulif %errorlevel%==0 goto as_ad..."/>
驱动批处理示例
+ -

驱动安装-以管理员身份运行

2024-09-09 0 0

源码如下:

@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

这个批处理脚本的目的是确保以管理员权限运行,并在以管理员权限运行的情况下安装一个摄像头驱动程序。以下是脚本逐行解释:

  1. @echo off

    • 关闭命令行回显,这样在执行脚本时不会显示每一行命令。
  2. echo Run as administrator

    • 输出一行提示信息,告知用户需要以管理员权限运行脚本。
  3. cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul

    • 使用 cacls.exe 命令测试是否有权限访问系统卷信息目录。cacls 是一个用于修改文件和目录权限的工具。>nul 2>nul 将标准输出和标准错误输出都重定向到空设备,即不显示这些输出。
  4. if %errorlevel%==0 goto as_admin

    • 检查上一个命令的返回码(%errorlevel%)。如果返回码为 0(表示有权限),则跳转到 :as_admin 标签处。
  5. if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"

    • 如果 %temp%\getadmin.vbs 文件存在,则删除它。/f 强制删除,/q 不显示提示信息。
  6. echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"

    • 创建一个 VBScript 文件 getadmin.vbs。该脚本的内容用于请求管理员权限。^ 是转义字符,用于在 echo 命令中插入特殊字符(")。
  7. echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"

    • getadmin.vbs 文件追加一行代码,使用 ShellExecute 方法以管理员权限重新运行当前批处理脚本 (%~s0 是当前批处理文件的完整路径)。
  8. echo WScript.Quit >>"%temp%\getadmin.vbs"

    • getadmin.vbs 文件追加一行代码,完成脚本执行后退出。
  9. "%temp%\getadmin.vbs" /f

    • 运行生成的 VBScript 文件以请求管理员权限。 /f 选项是不必要的,可能是个错误或多余的。
  10. if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"

    • 如果 VBScript 文件还存在,则删除它。这样可以确保脚本运行后不会留下不必要的文件。
  11. exit

    • 退出当前批处理脚本。
  12. :as_admin

    • 标签,标记为 as_admin,如果脚本已经以管理员权限运行,会跳转到这里。
  13. cd /d %~dp0

    • 更改当前目录到批处理文件所在的目录。%~dp0 是批处理文件的驱动器和路径。
  14. echo Installing Camera driver...

    • 输出一行信息,提示正在安装摄像头驱动程序。
  15. devcon.exe install driver\VCam_WDM.inf VCam_WDM

    • 使用 devcon.exe 工具安装摄像头驱动程序。driver\VCam_WDM.inf 是驱动程序的安装文件,VCam_WDM 是驱动程序的设备实例名称。
  16. pause

    • 暂停脚本执行,等待用户按任意键继续。这有助于用户查看安装结果或任何错误信息。

总结来说,这个脚本的工作流程是:首先检查是否以管理员权限运行,如果不是,则通过生成和运行 VBScript 文件请求管理员权限;如果已是管理员权限,则更改到脚本所在目录并安装指定的驱动程序。

0 篇笔记 写笔记

作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!