[英]I want to run Driverquery /v from a script
我想从脚本运行 Driverquery /v 并从获得的结果中,我想 select 基于字符串的特定行值的特定列的值。
我已经在我的批处理文件中编写了这个 driverquery /v,并运行了批处理文件,它能够列出驱动程序结果及其路径,但不知道如何从那里开始?
我会给你两个选项来解决这个问题
使用引号作为分隔符
for /f tokens^=26^ delims^=^" %%G in ('driverquery /V /FO CSV ^|findstr /IC:"Virtual WiFi Miniport"') do echo %%G
从 output 创建一个变量数组。 在您的情况下,变量 x14 将是您要查找的字段。
for /f "delims=" %%G in ('driverquery /V /FO CSV ^|findstr /IC:"Virtual WiFi Miniport"') do set "x=%%~G"
set i=1
setlocal enabledelayedexpansion
set "x!i!=%x:","=" & set /A i+=1 & set "x!i!=%"
set x
编辑:第三种选择
REM OPTION 3 use the Driver Query header row as variables
for /f "delims=" %%G in ('driverquery /V /FO CSV') do (set "vars=%%~G" & GOTO NEXT)
:NEXT
REM Cleanup variable names
SET "vars=%vars: =_%"
SET "vars=%vars:(=_%"
SET "vars=%vars:)=%"
SET "vars=%vars:path=dPath%"
SET "vars=%vars:","= %"
for /f "delims=" %%G in ('driverquery /V /FO CSV ^|findstr /IC:"Virtual WiFi Miniport"') do set "str=%%~G"
set "p=%%"
set "v=%vars: =" & set "s=!str:*","=!" & call set "!v!=!p!str:","!s!=!p!" & set "str=!s!" & set "v=%" & set "!v!=!s!"
REM Display all the values
FOR %%G IN (%vars%) DO CALL ECHO %%G = %%%%~G%%
这就是我所说的实现预期目标的更简单方法(尽管已弃用),请使用wmic 。
以下应标识“DriverQuery” Path:
与“DriverQuery” Display Name:
其中包含字符串Virtual WiFi Miniport
cmd :
For /F Tokens^=^6^ Delims^=^" %G In ('%SystemRoot%\System32\wbem\WMIC.exe SysDriver Where "DisplayName Like '%Virtual WiFi Miniport%'" Get PathName /Format:"MOF" 2^>NUL') Do @Echo %G
如果您希望将字符串定义为变量以供以后使用,请使用批处理文件:
@For /F Tokens^=^6^ Delims^=^" %%G In ('%SystemRoot%\System32\wbem\WMIC.exe SysDriver Where "DisplayName Like '%%Virtual WiFi Miniport%%'" Get PathName /Format:"MOF" 2^>NUL') Do @Set "DriverPath=%%G"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.