我有一个简单的脚本,可以获取 PC 制造商并设置一个变量:
for /f "usebackq tokens=2 delims==" %%A IN (`wmic csproduct get vendor /value`) DO SET VENDOR=%%A
Run Code Online (Sandbox Code Playgroud)
接下来我需要做的是检查我的新VENDOR变量是否与列表中的任何内容匹配:
Acer
Gateway
Packard
Alienware
ASUS
Dell Inc.
Fujitsu
HP
Compaq
Lenovo
IBM
Samsung
Sony
Toshiba
Run Code Online (Sandbox Code Playgroud)
然后DO COMMAND1如果找到,DOCOMMANDB如果没有找到。
我认为将变量通过管道输入findstr可能会起作用,但我只知道findstr当您向其提供文本文件时的用法。我真的不擅长正则表达式,所以如果这是最好的选择,我需要一些指导。
我怎样才能实现上述目标?
方法略有不同。您还可以将所有供应商放入列表中并使用 FOR /F 读取该列表。
@echo off
for /f "usebackq tokens=2 delims==" %%A IN (`wmic csproduct get vendor /value`) DO SET VENDOR=%%A
FOR %%G IN ("Acer"
"Gateway"
"Packard"
"Alienware"
"ASUS"
"Dell Inc."
"Fujitsu"
"HP"
"Compaq"
"Lenovo"
"IBM"
"Samsung"
"Sony"
"Toshiba") DO (
IF /I "%vendor%"=="%%~G" GOTO MATCH
)
:NOMATCH
echo Does not match
pause
GOTO :EOF
:MATCH
echo Does match
pause
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)
如果您想阅读每个条目独占一行的列表。
FOR /F "usebackq delims=" %%G IN ("filelist.txt") DO IF.......
Run Code Online (Sandbox Code Playgroud)