批处理脚本,mutlple发现和multple做集

目前我正在运行以下从“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的文章WMICFOR /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) 

谢谢!