繁体   English   中英

我想从脚本运行 Driverquery /v

[英]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%%

这就是我所说的实现预期目标的更简单方法(尽管已弃用),请使用

以下应标识“DriverQuery” Path:与“DriverQuery” Display Name:其中包含字符串Virtual WiFi Miniport

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM