Batch file 批处理脚本以查找系统品牌和型号,然后运行另一个脚本

Batch file 批处理脚本以查找系统品牌和型号,然后运行另一个脚本,batch-file,Batch File,我试图制作一个批处理脚本,找出计算机的制造、模型,然后执行我已经创建的另一个批处理脚本 到目前为止,我已经得到了计算机制造商: FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Manufacturer /value') do SET manufacturer=%%A 这是为了得到模型: FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Model

我试图制作一个批处理脚本,找出计算机的制造、模型,然后执行我已经创建的另一个批处理脚本

到目前为止,我已经得到了计算机制造商:

FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Manufacturer /value') do SET manufacturer=%%A
这是为了得到模型:

FOR /F "tokens=2 delims='='" %%A in ('wmic ComputerSystem Get Model /value') do SET model=%%A

现在,我不知道如何将make和models用作IF语句中的变量。

第一个问题:如何将
wmic
输出分配给环境变量:

for /f "tokens=1* delims==" %%a in (
  'wmic computersystem get model /value'
  ) do for /f "delims=" %%c in ("%%~b") do set "model=%%c"
echo %model%
for循环在哪里

  • %%a
    检索模型(在第二个令牌中,
    %%b
  • %%c
    删除返回值中的结束回车符(
    wmic
    行为:每个输出行以
    0x0D0A
    结束,而不是普通的
    0x0D0A
另一个潜在问题:如果在命令块
(括号
中的
)内赋值,如何引用环境变量

运行上面的脚本以查看效果:


遵循Stephan关于使用的评论。

这对您有用吗?:
如果“%manufacturer%”==“Hewlett-Packard”echo yes
@ECHO OFF >NUL
SETLOCAL enableextensions disabledelayedexpansion
set "model=nothing assigned yet"
for /f "tokens=1* delims==" %%a in (
  'wmic computersystem get model /value'
  ) do for /f "delims=" %%c in ("%%~b") do (
      set "model=%%c"
      echo %model% :referenced using percent signs within a command block
      SETLOCAL enabledelayedexpansion
         echo !model!  :referenced using exclamation marks within a command block
      ENDLOCAL
    )
echo %model%  :referenced using percent signs out of a command block
ENDLOCAL
goto :eof
==>D:\bat\StackOverflow\29893432.bat
nothing assigned yet :referenced using percent signs within a command block
System Product Name  :referenced using exclamation marks within a command block
System Product Name  :referenced using percent signs out of a command block

==>