返回列表 发帖

[系统相关] 批处理如何实现依次静默安装多个驱动程序并在每安装完一个驱动之后重启下电脑

静默安装 重启继续
假设有5个驱动:1.exe;2.exe;3.exe...5.exe,它们的静默安装参数都是-s,现在请写一下一个批处理(或者脚本之类的)静默安装这5个驱动,要求:安装完1.exe,自动重启,然后继续安装2.exe,然后再自动重启安装3.exe,以此类推,直至最后一个驱动,最后一个驱动安装重启后弹出对话框,或者其他之类的,反正要个提示。

本帖最后由 hlzj88 于 2016-11-14 23:02 编辑
@echo off
if exist c:\2.txt goto anzhuang2
if exist c:\3.txt goto anzhuang3
if exist c:\4.txt goto anzhuang4
if exist c:\5.txt goto anzhuang5
:anzhuang1
echo.>c:\2.txt
你的程序
重启
:anzhuang2
echo.>c:\3.txt
del c:\2.txt
你的程序
重启
:anzhuang3
echo.>c:\4.txt
del c:\3.txt
你的程序
重启
:anzhuang4
echo .>"C:\5.txt"
del c:\4.txt
你的程序
重启
:anzhuang5
echo  五个安装完  本文本你要手动删除>"C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\5.txt"
你的程序
del c:\5.txt
del %0COPY
大致流程是这样,,放入启动里
目的,学习批处理

TOP

本帖最后由 /zhqsystem/zhq 于 2016-11-15 02:44 编辑
@echo off&setlocal enabledelayedexpansion
call :drivers_install
call :drivers_log
set "drivers_install=y"
goto :drivers_install
:drivers_install
set "drivers_path_Numbers=0"
set "drivers_path="
for /f "delims=" %%i in ('"type "%~f0""')do (
set "new=%%i"
if /i "!new:~0,2!"=="::" (rem:
)else if /i "%%i"=="goto:eof" (set "drivers_path="
)else if /i "%%i"=="goto :eof" (set "drivers_path="
)else if /i "%%i"==":drivers_path" (set "drivers_path=y"
)else (
  if defined drivers_path (
   set/a "drivers_path_Numbers+=1"
   if defined drivers_install (
    if !drivers_path_Numbers! gtr !drivers_log_Numbers! (rem:
     if defined drivers_install if "!drivers_path_Numbers!"=="!drivers_path_Numbers_backup!" (
      echo,请勿退出或断电
      echo,正在调用驱动序列: !drivers_path_Numbers!
      echo,正在调用驱动路径: %%~fi
      start/w "" "%%~fi" /s
      reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "%~nx0" /f
      del/q "%~dp0drivers_log.ini"
      echo,全部驱动已安装完成
      pause&shutdown /r /t 30&exit
     )else (
      echo,请勿退出或断电
      echo,正在调用驱动序列: !drivers_path_Numbers!
      echo,正在调用驱动路径: %%~fi
      start/w "" "%%~fi" /s
      (echo,!drivers_path_Numbers!)>"%~dp0drivers_log.ini"
      reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "%~nx0" /t reg_sz /d "%~f0" /f
      shutdown /r /t 30&exit
     )
    )
   )else (
    set "drivers_path_Numbers_backup=!drivers_path_Numbers!"
   )
  )
)
)
goto:eof
:drivers_log
set "drivers_log_Numbers="
if not exist "%~dp0drivers_log.ini" (echo,0)>"%~dp0drivers_log.ini"
set/p drivers_log_Numbers=<"%~dp0drivers_log.ini"
goto:eof
:drivers_path
::此处以下为驱动程序完整路径不写引号,此行可以不删COPY
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 3# /zhqsystem/zhq
感谢大神的回复,其中我有大概十几个驱动要安装,重装系统的时候一个个手点比较麻烦,所以想到这个问题。本人小白,感谢!
然后再问下,如果这些驱动的静默安装参数不相同怎么办?

TOP

本帖最后由 /zhqsystem/zhq 于 2016-11-15 22:30 编辑

回复 4# weileyiqie
改变执行代码和对应参数为 "路径" 参数
去除startt改用 %%i
驱动一起安装不重启也没事主要是注意顺序
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 5# /zhqsystem/zhq
好高深的样子,大神可以一下子改好了让我copy一下子么

TOP

返回列表