本帖最后由 yakeyun 于 2023-8-23 13:23 编辑
因为需要用这个命令来禁用RAID设备,如果不禁用自动打上驱动后会导致开机蓝屏。
先上代码:- @echo off & setlocal enabledelayedexpansion
- cd /d "%~dp0"
-
-
- ::=============================优先禁用RAID设备=============================
- for /f "tokens=1,* delims=:" %%a in ('pnputil /enum-devices /problem 28 /ids ^|findstr /n "RAID 控制器"') do (
- set lines=%%a
- set /a lines1=!lines! - 1
- echo !lines!
- echo !lines1!
- set counter=0
- for /f "tokens=1,*" %%b in ('pnputil /enum-devices /problem 28 /ids') do (
- set /a counter+=1
- if !counter! equ !lines1! (
- echo !counter!
- echo %%b
- start /min "" "%SystemRoot%\system32\pnputil.exe" /disable-device "%%c"
- )
- )
- )
- :Scan
- start /min "" "%SystemRoot%\system32\pnputil.exe" /scan-devices
- start /min "" "%SystemRoot%\system32\pnputil.exe" /scan-devices
- start /min "" "%SystemRoot%\system32\pnputil.exe" /scan-devices
- start /min "" "%SystemRoot%\system32\pnputil.exe" /scan-devices
- pause
- exit
复制代码 下面是运行结果,从运行结果可以看出,获取的变量都是对的,但是结果却是错的。
其中 if !counter! equ !lines1! 这句代码的作用是,如果当前操作的行号和目标行号一致,就输出内容。也就是"实例 ID:" 所在行信息。
|