无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 10126|回复: 5
打印 上一主题 下一主题

用批处理安装驱动

[复制链接]
跳转到指定楼层
1#
发表于 2012-10-22 11:56:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的想法是这样的,在WIN7PE中,当启动到桌面,发现不了U盘时,一般是因为没有USB3.0驱动的原因,这时可以运行一个批处理来安装USB3.0驱动, 这样就可以看到U盘了。我得到一个本坛P大写的批处理,但经实验没有成功,看能不能改一下
@ECHO off
color 0E
REM 改变当前路径到批处理所在路径
cd /d "%~dp0"
CLS
TITLE 搜索本机驱动库 (tanks wimb)- 请稍后...
SETLOCAL ENABLEEXTENSIONS
SETLOCAL ENABLEDELAYEDEXPANSION

ECHO.
ECHO  搜索并安装主机驱动库中的驱动
ECHO.


for %%i in (C D E F G H I J K L M N) do (
  IF EXIST "%%i:\Windows\SysWow64" (
    if exist "%%i:\Windows\system32\driverstore\filerepository" (
      ECHO  找到的驱动库: %%i:\Windows\system32\driverstore\filerepository
      start /b cmd /c pecmd devi %%i:\Windows\system32\driverstore\filerepository\*inf
    )
  )
)
ECHO.
ECHO  正在搜索主机驱动 - 请稍候 ....
ECHO.
ECHO  某些 USB 3.0 设备可能需要运行两次才能安装上
ECHO.
ECHO  *** 请不要关闭本窗口,安装后会自动关闭 ***
ECHO.
:: pause
EXIT

我看了, filerepository目录下还有很多含有inf夹在中间的文件夹(比如45kl_inf.wsydh等),这种文件夹下才是驱动文件所在
如何用通配符来代表文件夹很重要,要不可能无法指定那么多文件夹,并在其中找到需要的驱动来安装。。。

[ 本帖最后由 TCLSHX 于 2012-10-22 11:57 编辑 ]
2#
发表于 2012-10-26 08:11:19 | 只看该作者
用 "dir /b /s /ad %%i:\filerepository" 来找出 该文件夹。
回复

使用道具 举报

3#
 楼主| 发表于 2012-10-26 09:59:18 | 只看该作者
原帖由 dos时代菜鸟 于 2012-10-26 08:11 发表
用 "dir /b /s /ad %%i:\filerepository" 来找出 该文件夹。

filerepository文件夹下还有很多,可能有几百个中间夹有inf字符的文件夹,这种文件夹中才是驱动藏身所在,文件夹名又不能用通配符,所以难呀....
回复

使用道具 举报

4#
发表于 2012-10-27 16:56:36 | 只看该作者
你就列出你的目录树,告诉我们你要安装哪些文件就行了,这样连猜带蒙的没法解决问题呀!顺便说一句find还有个/G参数,应当没那么多究结吧!
回复

使用道具 举报

5#
发表于 2012-10-27 19:47:48 | 只看该作者
devi命令可以搜索CAB压缩包内的inf文件,找到正确的inf文件进行安装,即使CAB压缩包内有多层子目录。

但如果不是压缩包,不知道能否搜索包括子目录下的inf文件。如果不能,是不是有多少个子目录,就执行多少次Devi命令?

像这样?
  1. for %%i in (C D E F G H I J K L M N) do (
  2.   IF EXIST "%%i:\Windows\SysWow64" (
  3.     if exist "%%i:\Windows\system32\driverstore\filerepository" (
  4.       ECHO  找到的驱动库: %%i:\Windows\system32\driverstore\filerepository
  5.       start /b cmd /c pecmd devi %%i:\Windows\system32\driverstore\filerepository\*.inf
  6.       pushd "%%i:\Windows\system32\driverstore\filerepository"
  7.       for /f "delims=" %%a in ('dir /ad /b /s *inf*') do (
  8.         start /b cmd /c pecmd devi "%%a\*.inf"
  9.       )
  10.       popd
  11.     )
  12.   )
  13. )
复制代码
回复

使用道具 举报

6#
 楼主| 发表于 2012-10-29 00:46:19 | 只看该作者
原帖由 pznpt 于 2012-10-27 19:47 发表
devi命令可以搜索CAB压缩包内的inf文件,找到正确的inf文件进行安装,即使CAB压缩包内有多层子目录。

但如果不是压缩包,不知道能否搜索包括子目录下的inf文件。如果不能,是不是有多少个子目录,就执行多少 ...


现在好象不能搜索包括子目录中的INF文件,但子目录的目录名又是不确定的,且很多,如果目录名可能用通配符就可以搞定,但实际又不能用通配符。。。这是难点
要是能用通配符,这句就可以搞定
start /b cmd /c pecmd devi %%i:\Windows\system32\driverstore\filerepository\*inf *\*inf


你的这段代码,等我同事回来了, 我用他的本本来测试一下,可能要一周后
for %%i in (C D E F G H I J K L M N) do (
  IF EXIST "%%i:\Windows\SysWow64" (
    if exist "%%i:\Windows\system32\driverstore\filerepository" (
      ECHO  找到的驱动库: %%i:\Windows\system32\driverstore\filerepository
      start /b cmd /c pecmd devi %%i:\Windows\system32\driverstore\filerepository\*.inf
      pushd "%%i:\Windows\system32\driverstore\filerepository\"
      for /f "delims=" %%a in ('dir /ad /b /s *inf*') do (
        start /b cmd /c pecmd devi "%%a\*.inf"
      )
      popd
    )
  )
)

[ 本帖最后由 TCLSHX 于 2012-10-29 00:54 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-29 22:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表