目前我正在运行以下从“systeminfo”获取一些信息,但是它需要运行两次systeminfo,这需要一些时间。 我将如何能够做多“查找”XXX“做套”?
For /f "delims=" %%A IN ('systeminfo ^| Find "OS Name"') DO Set "VarA=%%A" For /f "delims=" %%A IN ('systeminfo ^| Find "BIOS Version"') DO Set "VarB=%%A"
任何帮助是极大的赞赏。
下一个代码片段可以工作(注意set
命令仅仅是为了调试的目的而修改的;删除大写的ECHO
不会比调试快):
For /f "delims=" %%A IN ('systeminfo') DO ( For /F "delims=" %%G IN ('echo %%A ^| Find /I "OS Name"') Do ECHO Set "VarA=%%A" For /F "delims=" %%G IN ('echo %%A ^| Find /I "BIOS Version"') DO ECHO Set "VarB=%%A" )
但是,请按照Stephan的建议来解析wmic
输出(不要忘记/value
选项)。 要正确地做到这一点,请注意伟大的Dave Benham的文章WMIC
和FOR /F
:修正了<CR>
结尾的问题
我也会使用WMIC,但是如果你想使用SYSTEMINFO,有一个简单的解决方案 – 使用FINDSTR和两个/ C:“搜索字符串”
for /f "tokens=1,2*" %A in ('systeminfo ^| findstr /c:"OS Name" /c:"BIOS Version"') do set "%A=%C"
以上将在英文机器上定义两个变量:OS和BIOS。
谢谢你们的答复。
我想设置批处理文件将运行的位版本窗口,我想了很久以前,但认为我会在这里发布它的那些碰到它:
echo %PROCESSOR_ARCHITECTURE% | find "64" > NUL If %ERRORLEVEL% equ 0 (Set bit=64) else (Set bit=32)
谢谢!